Personal tools

Functor

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
(Added section "More reading" with a link to "The functor design pattern")
(Updated module.)
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)
  

Revision as of 17:25, 23 August 2014

Functor class (base)
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)


More reading