3 ms·
To spell things out a bit more: A list is fundamentally constructed from [] and :. In the sense that a list is either empty [] or a head : tail, where tail is a
by patrickthebold 7y ago
To spell things out a bit more:
A list is fundamentally constructed from [] and :. In the sense that a list is either empty [] or a head : tail, where tail is another list.
One might write 1:2:3:4:[].
foldr is deciding where to map [] and :. So for example:
[] => 0
: => +
Turns the above list into 1+2+3+4+0.
With that understanding, foldr (:) [] becomes:
[] => []
: => :
which is fairly clearly the identity.
- toolslive 7y ago> foldr is deciding where to map [] and : This is a way better explanation than the cryptic: " it (foldr) takes the second argument and the last item of the list and applies the function, then it takes the penultimate item from the end and the result, and so on. See scanr for intermediate results. "