
13 Feb
2013
13 Feb
'13
3:12 a.m.
Mateusz Kowalczyk
A less obvious interpretation is to treat ($) as `id'.
(f . g) x = f $ g x = f (id g x) = f (g x)
This is not how you get from ($) to id. The correct path is: f $ x = ($) f x = f x = id f x = f `id` x This equivalence is indicated by the type of ($). It's a specialized instance of a -> a: ($) :: (a -> b) -> (a -> b) ($) f = f or equivalently: ($) :: (a -> b) -> a -> b ($) f x = f x or equivalently: ($) :: (a ~ b -> c) => a -> a ($) = id Greets, Ertugrul -- Not to be or to be and (not to be or to be and (not to be or to be and (not to be or to be and ... that is the list monad.