プログラミング 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 だそうですがそれはまた明日。