2008年4月27日日曜日 関数型(3) - 畳み込み fold, reduce 次の2つの計算を、畳み込み関数を使用して書く。 1 + 2 + 3 + 4 + 5 = 15 1 * 2 * 3 * 4 * 5 = 120 Scheme R Haskell JavaScript Erlang Ruby Scala Python OCaml PHP Scheme Gauche 0.8 $ gosh gosh> (fold (lambda (x y) (+ x y)) 0 '(1 2 3 4 5)) 15 gosh> (fold (lambda (x y) (* x y)) 1 '(1 2 3 4 5)) 120 gosh> (exit) ➢ 簡略化できる $ gosh gosh> (fold + 0 '(1 2 3 4 5)) 15 gosh> (fold * 1 '(1 2 3