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

備忘としてのメモを記載

2018-09-06から1日間の記事一覧

mapとreduce

抽象度 reduce > mapどう使い分ける map 配列の各要素に関数を当てた配列を返すとき 注目するのはその要素に何をするかだけ (map_sqrt : list(int) => list(int), map_mod2 : list(int) => list(bool) )reduce 1,配列をなにかに変換するとき (sum : list(i…

再帰の使い方まとめ

1,漸化式を表現する // f(n)をf(n-1)を使って表せたら再帰関数は作れる // a(0) = 3 // a(n) = 2 * a(n-1) -1 let rec a = n => switch (n) { | 0 => 3 | _ => 2 * a(n - 1) - 1 }; // 1からnまでの総和 // sum(0) = 0 // sum(n) = n + sum(n-1) // 素数判定…

99 problemについて

途中からだいぶ数学チックになってきた。 ちょっと飛ばそう。 あとコードが汚い気がする。 Q31,素数か判定する関数の答え let is_prime = n => { let n = abs(n); let rec is_not_divisor = d => d * d > n || n mod d != 0 && is_not_divisor(d + 1); n != …

プログラミング英単語

extract 抜き出す、取り出すextract(n, lst) lstからn番目だけ抜き出す 例) extract(3, ["a","b","c","d","e"]) = ("c", ["a","b","d","e"])

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;; - : strin…