2011-02-23 プログラミング Haskell 第7章 高階関数 その2 7.3 畳込関数 foldr からです 引数にリストを取る関数によくあるパターン f [] = v f (x:xs) = x `op` f xs -- op は演算子 foldr を使うとこのパターンを関数として抽出できる foldr (op) v が 上と同じになる 第6章で再帰をfoldrで書き直したように、再帰するパターンは foldr の中に閉じ込められる foldr (op) [x0,x1,x2,...] = x0 `op` (x1 `op` (x2 `op` ....)) ということは右連結な演算子なので左連結なパターンも……というのが実はあってそれが foldl だそうですがそれはまた明日。