
POST
X-Face: H#SM:U1U-/6#NN83s6?Die557~]Dfifz~-|V:wSKGL6T-|!qk{U4/M7+k5Py!-{q=2Q/%0@
E29yc_kQC&^
User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.4
Andrew Coppin
As I lay in bed last night, a curios fact occurred to me. (Yes, I don't get out very much...)
You probably ought to get out of bed from time to time, you know.
Consider the map function:
map :: (a -> b) -> [a] -> [b]
There are two ways you can think about this function. First, you can see it as meaning
map :: (a -> b) -> ([a] -> [b])
Which is beautifully symmetric. Alternatively, you can think about how you actually use it:
map :: ((a -> b) -> [a]) -> [b]
No, if you think like that, you're wrong! That would be a function that takes an object of type ((a->b) -> [a]) and returns a [b] (which if you think about it, would be an odd sort of function). (->) associates to the right. -- Jón Fairbairn Jon.Fairbairn@cl.cam.ac.uk