我对foldr和foldl的工作原理感到困惑。比如在列表[1,2,3]
上使用这样的例子foldr (+) 0 => 1 : (2 :(3:([]))
=> 1 + (2 +(3+0)) = 6
这是有道理的,因为每个:被+号和空集取代为0.
但是当我在ghci中输入以下两行时,我得到了:
foldr div 7 [13,6,19] -- gives me 4
foldl div 7 [13,6,19] -- gives me 0
我以为我会得到一个列表,其中每个元素除以7,但我得到一个元素。 有人可以告诉我ghci如何计算这个。