# Functor

### From HaskellWiki

(Difference between revisions)

(→Further reading) |
(→Methods) |
||

Line 46: | Line 46: | ||

: Create a new <hask>f b</hask>, from an <hask>f a</hask> using the results of calling a function on every value in the <hask>f a</hask>. | : Create a new <hask>f b</hask>, from an <hask>f a</hask> using the results of calling a function on every value in the <hask>f a</hask>. | ||

<pre>(<$) :: a -> f b -> f a</pre> | <pre>(<$) :: a -> f b -> f a</pre> | ||

− | : Create a new <hask>f | + | : Create a new <hask>f a</hask>, from an <hask>f b</hask> by replacing all of the values in the <hask>f b</hask> by a given value of type <hask>a</hask>. |

== Related Functions == | == Related Functions == |

## Revision as of 21:37, 2 December 2017

The**typeclass represents the mathematical functor: a mapping between categories in the context of category theory. In practice a**

Functor

functor

Functor f

## Contents |

## 1 Packages

- (base) Prelude
- (base) Data.Functor
- (base) Control.Monad

## 2 Syntax

class Functor f where fmap :: (a -> b) -> f a -> f b (<$) :: a -> f b -> f a

### 2.1 Minimal Complete Definition

fmap

## 3 Description

An abstract datatypef a

Functor

Functor

f b

f a

f

f

Functor

f a

a

Functor

fmap

### 3.1 Functor Laws

- Functors must preserve identity morphisms
fmap id = id

- When performing the mapping operation, if the values in the functor are mapped to themselves, the result will be an unmodified functor.
- Functors preserve composition of morphisms
fmap (f . g) == fmap f . fmap g

- If two sequential mapping operations are performed one after the other using two functions, the result should be the same as a single mapping operation with one function that is equivalent to applying the first function to the result of the second.

fmap

## 4 Methods

fmap :: (a -> b) -> f a -> f b

- Create a new , from anf busing the results of calling a function on every value in thef a.f a

(<$) :: a -> f b -> f a

- Create a new , from anf aby replacing all of the values in thef bby a given value of typef b.a

## 5 Related Functions

($>) :: a -> f b -> f a

- Create a new , from anf aby replacing all of the values in thef bby a given value.f b

(<$>) :: a -> f b -> f a

- An infix synonym for Data.Functor.fmap

void :: Functor f => f a -> f ()

- create a new from anf ()by replacing all of the values in thef abyf a()