Functor
From HaskellWiki
(Difference between revisions)
(Added section "More reading" with a link to "The functor design pattern") |
|||
(8 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
+ | {{Standard class|Functor|module=Control.Monad|module-doc=Control-Monad|package=base}} | ||
The '''Functor''' class is defined like this: | The '''Functor''' class is defined like this: | ||
Line 8: | Line 9: | ||
fmap id = id | fmap id = id | ||
fmap (p . q) = (fmap p) . (fmap q) | fmap (p . q) = (fmap p) . (fmap q) | ||
+ | |||
+ | |||
+ | == More reading == | ||
+ | |||
+ | * [http://www.haskellforall.com/2012/09/the-functor-design-pattern.html The functor design pattern] | ||
+ | |||
+ | |||
+ | |||
+ | [[Category:Functor|*]] |
Revision as of 18:52, 19 September 2012
import Control.Monad |
The Functor class is defined like this:
class Functor f where fmap :: (a -> b) -> f a -> f b
All instances of Functor should obey:
fmap id = id fmap (p . q) = (fmap p) . (fmap q)