リストを操作する関数(その3)

foldl と foldr はちょっとわかりにくい。なのでこんなのを書いてみた。
括弧内の数字は引数を表している。0 が初期値で 1, 2, 3... がリストの各要素。内側の括弧から順に評価される。
foldl はこう。

 *Main> foldl (\x y -> "(" ++ x ++ "," ++ y ++ ")" ) "0" ["1","2","3","4","5"]
 "(((((0,1),2),3),4),5)"

で foldr はこう。

 *Main> foldr (\x y -> "(" ++ x ++ "," ++ y ++ ")" ) "0" ["1","2","3","4","5"]
 "(1,(2,(3,(4,(5,0)))))"

何となくわかりやすい……?