foldlが無限リストを扱えない件についての確認

fold(l/r) (++) [] l
という呼出で、lが無限リストの場合式を評価して最初の要素を得ようとした時に、foldlは計算が終わらないがfoldrは結果を得ることができる。

これは、foldlの呼出は, (++)をf, lを[a, b, ...] とすると

f (f ... (f [] a) ) .

となって、fの入れ子の深さが無限になってしまう。
foldrは

f a (f b (....

となるので、遅延評価の力で最初の要素をただちにに得られる。