# Category theory/Natural transformation

### From HaskellWiki

< Category theory(Difference between revisions)

EndreyMark (Talk | contribs) (→Commutativity of diagram: More typings) |
EndreyMark (Talk | contribs) m (→Commutativity of the diagram: Format caption (no more a caption)) |
||

Line 94: | Line 94: | ||

|} | |} | ||

− | === Commutativity of diagram === | + | === Commutativity of the diagram === |

+ | |||

+ | :<math>\Psi(f) \cdot \eta_X = \eta_Y \cdot \Phi(f)</math> | ||

+ | both paths span between | ||

+ | :<math>\Phi(X) \to \Psi(Y)</math> | ||

{| Border=2 CellPadding=2 CellSpacing=2 | {| Border=2 CellPadding=2 CellSpacing=2 | ||

− | |||

| RowSpan=2| | | RowSpan=2| | ||

| ColSpan=2|<hask>Maybe Int -> [Bool]</hask> | | ColSpan=2|<hask>Maybe Int -> [Bool]</hask> |

## Revision as of 20:05, 2 October 2006

## Contents |

## 1 Example: maybeToList

maybeToList

map even $ maybeToList $ Just 5

yields the same as

maybeToList $ map even $ Just 5

yields: both yield

[False]

### 1.1 Vertical arrows: sides of objects

… showing the operation of the natural transformation.

maybeToList :: Maybe a -> [a]

#### 1.1.1 Left: side of *X* object

maybeToList :: Maybe Int -> [Int] | |

Nothing |
[] |

Just 0 |
[0] |

Just 1 |
[1] |

#### 1.1.2 Right: side of *Y* object

maybeToList :: Maybe Bool -> [Bool] | |

Nothing |
[] |

Just True |
[True] |

Just False |
[False] |

### 1.2 Horizontal arrows: sides of functors

even :: Int -> Bool

#### 1.2.1 Side of Φ functor

map even:: Maybe Int -> Maybe Bool | |

Nothing |
Nothing |

Just 0 |
Just True |

Just 1 |
Just False |

#### 1.2.2 Side of Ψ functor

map even:: [Int] -> [Bool] | |

[] |
[] |

[0] |
[T]rue |

[1] |
[F]alse |

### 1.3 Commutativity of the diagram

both paths span between

Maybe Int -> [Bool] | ||

map even . maybeToList |
maybeToList . map even | |

Nothing |
[] |
[] |

Just 0 |
[True] |
[True] |

Just 1 |
[False] |
[False] |

### 1.4 Remarks

- has a more general type (even) than described hereIntegral a => a -> Bool
- Words “side”, “horizontal”, “vertical”, “left”, “right” serve here only to point to the discussed parts of a diagram, thus, they are not part of the scientific terminology.