Functor
From HaskellWiki
(Difference between revisions)
(Main article in category Functor) |
(Updated module.) |
||
(One intermediate revision by one user not shown) | |||
Line 1: | Line 1: | ||
− | {{Standard class|Functor|module=Control.Monad|module-doc=Control-Monad|package=base}} |
+ | {{Standard class|Functor|module=Data.Functor|module-doc=Data.Functor|package=base}} |
The '''Functor''' class is defined like this: |
The '''Functor''' class is defined like this: |
||
class Functor f where |
class Functor f where |
||
fmap :: (a -> b) -> f a -> f b |
fmap :: (a -> b) -> f a -> f b |
||
+ | |||
+ | It is available in the Prelude, but defined in Data.Functor. |
||
All instances of Functor should obey: |
All instances of Functor should obey: |
||
− | 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|*]] |
[[Category:Functor|*]] |
Latest revision as of 17:25, 23 August 2014
import Data.Functor |
The Functor class is defined like this:
class Functor f where fmap :: (a -> b) -> f a -> f b
It is available in the Prelude, but defined in Data.Functor.
All instances of Functor should obey:
fmap id = id fmap (p . q) = (fmap p) . (fmap q)