なぜ関数プログラミングは重要かの内容はどうやら関数プログラミングを理解する上で重要なことが書かれているらしいけど、いきなりlispでまったくわからない。 わからないなりにlispリファレンスなページ等片手に調べてたらなんとなくわかってきたのでとりあえずreduceの感触をjavascriptで確かめてみます。 (reduce f x) nil = x (reduce f x) (cons a l) = f a ((reduce f x) l)何となく再帰的なのはわかる。reduce以外の変数は以下のような意味らしい。 f = 関数 x = 初期値 cons = 引数を二つとり、その二引数からなる配列を作る (cons a l) = 配列 a = (cons a l)配列の先頭値 l = (cons a l)配列のa以降の要素 (reduce f x)の部分は最初の例だとsum関数に置き換え