Prelude> foldl (+) 10 [1 ,2 ,3 ] 16 Prelude> foldr (+) 10 [1 ,2 ,3 ] 16 Prelude> foldl (\a b -> a + b) 10 [1 ,2 ,3 ] 16 Prelude> foldr (\a b -> a + b) 10 [1 ,2 ,3 ] 16
違いが分からないので文字列の連結をさせてみる。
Prelude> foldl (\a b -> "["++ a ++ b ++ "]") " Start " [" 1 "," 2 "," 3 "] "[[[ Start 1 ] 2 ] 3 ]" Prelude> foldr (\a b -> "["++ a ++ b ++ "]") " Start " [" 1 "," 2 "," 3 "] "[ 1 [ 2 [ 3 Start ]]]"