Functor
From HaskellWiki
(Difference between revisions)
(Added section "More reading" with a link to "The functor design pattern") |
(Updated module.) |
||
Line 1: | Line 1: | ||
− | {{Standard class|Functor|module= | + | {{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) | ||
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)