メモのメモのfoldl
色々メモ帳を浮気する駄目な性格なのでメモがなくならないうちにメモのメモ
foldl
foldl :: (a -> b -> a) -> a -> [b] -> a foldl f z [] = z foldl f z (x:xs) = foldl f (f z x) xs -- foldl f z [x1, x2, ..., xn] == (...((z `f` x1) `f` x2) `f`...) `f` xn
foldl :: (a -> b -> a) -> a -> [b] -> a ~~~~~~~~~~ ~~ ~~~ ~~ function Seed list 完成!! foldl op Seed [] = Seed foldl op Seed [x:xs] = foldl op (Seed `op` x) xs
Prelude> foldl (+) 0 [1..5] 15 -- ((+) ((+) ((+) ((+) ((+) 0 1) 2) 3) 4) 5) -- ((0+1)+2)+3)+4)+5) = 15
図があるといいですね。
Fold(Wikipedia)