誰がどのようにfoldl機能するか説明できますか? たとえば、 (1 - (2 - (3 - 0))) を生成するのに対し、(((0 - 1) - 2) - 3) を生成する
ことを理解しましたが、まだいくつか質問があります。 foldr (-) 0 [1,2,3]foldl (-) 0 [1,2,3]
1 番目の例 (foldr/foldl を使用したリストの長さ):
foldr (\_ acc -> acc + 1) 0 [1,2,3,4,5]予想どおり、5 が生成されます。
foldl (\_ acc -> acc + 1) 0 [1,2,3,4,5]6 を生成します。:|
foldl (\_ acc -> acc + 1) 0 [2]3 を生成します。:|
foldl はこれらの例にどのように反応しますか?2 番目の例:
foldr (:) [] [1,2,3,4][1,2,3,4] を生成 - 心配はいりませんが、エラーが 表示さfoldl (:) [] [1,2,3,4]れます:Occurs check: cannot construct the infinite type: a ~ [a]