院卒新人サラリーマンのメモ代わり

備忘としてのメモを記載

99 problems Q14,15,18

# duplicate ["a";"b";"c";"c";"d"];;
- : string list = ["a"; "a"; "b"; "b"; "c"; "c"; "c"; "c"; "d"; "d"]

これはそのままhdを2回追加すれば良いだけだから簡単。
ただこれの回数が可変になると一気に変わる。

# replicate ["a";"b";"c"] 3;;
- : string list = ["a"; "a"; "a"; "b"; "b"; "b"; "c"; "c"; "c"]

考え方
・要素を1つ受け取って増やす関数を作って
・それぞれの要素に対してそれを当てはめる
・結果をまとめる
って感じに分解できると後は簡単

prepend: 繰り返す回数nと文字xを受け取って回数分増やした文字列を返す
fold_left: 各要素にprependを当てて、結果をまとめる

# slice ["a";"b";"c";"d";"e";"f";"g";"h";"i";"j"] 2 6;;
- : string list = ["c"; "d"; "e"; "f"; "g"]

先頭から指定数切り落とす関数
先頭から指定数取り出す関数
を作って合わせる