[Haskell-beginners] Why this order of parameters
Kim-Ee Yeoh
ky3 at atamo.com
Fri Nov 13 01:08:41 UTC 2015
On Fri, Nov 13, 2015 at 12:49 AM, Martin Vlk <martin at vlkk.cz> wrote:
> I'm curious if this could be for the sake of making the types of the two
> functions (foldr/foldl) different? E.g. so that you can tell from the
> type what function it is.
>
No, that would be foolish. One doesn't simply make the types different to
distinguish them.
Suppose the elements are already naturally foldable. Then foldr and foldl
have the same type signature:
foldl, foldr :: (a -> a -> a) -> a -> [a] -> a
But sometimes they are only foldable qua another type. Call it r. If you
work through Harald's reasoning, you'll arrive at:
foldr :: (a -> r -> r) -> r -> [a] -> r
foldl :: (r -> a -> r) -> r -> [a] -> r
-- Kim-Ee
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/beginners/attachments/20151113/fcaebf8f/attachment.html>
More information about the Beginners
mailing list