Talk:Foldr Foldl Foldl'
In Section Rules of Thumb for Folds the following is written:
... you do not care about the implicit reversal (for example, because your combining function is commutative like ...
Does this suggest that when your binary operator is commutative, foldl and fold r give the same result?
But that is not true! If the operation is associative then you get always the same result (if both deliver a result).
I can provide a commutative example where foldl and foldr return different result.
Moreover foldl' conceptually reverses the order of the list is a misleading formulation:
divisel :: [Double] -> Double
divisel = foldl (/) 1
diviser :: [Double] -> Double
diviser = foldr (/) 1
divisel [1,2] = diviser [1,2] = 0.5
Both divide 1 by 2.
I think it would be better to say foldl/foldr associates to the left/right.
--Klt (talk) 14:28, 19 July 2024 (UTC)
As the original author of the erroneous language, I think you are right.