| Daniel Wagner on 12 Sep 2011 06:54:30 -0700 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: Announcing Functional Fall: A 6-session functional programming reading circle in the Fall |
Jim Snavely wrote:
> This is rather confusing, because our notions of "to the left" and "to
> the right" are ambiguous.
For what it's worth, I remember which is which by associativity.
foldr's function argument is right-associated in the expansion:
foldr f z [a,b,c] = a `f` (b `f` (c `f` z))
{ when f is infixr } = a `f` b `f` c `f` z
Whereas foldl's function argument is left-associated in the expansion:
foldl f z [a,b,c] = ((z `f` a) `f` b) `f` c
{when f is infixl } = z `f` a `f` b `f` c
~d