Difference between revisions of "Category theory/Natural transformation"

From HaskellWiki
Jump to navigation Jump to search
m (Order should suggest the correspondence between Haskell example and mathmatical formalism)
Line 64: Line 64:
   
 
{| Border=2 CellPadding=2 CellSpacing=2
 
{| Border=2 CellPadding=2 CellSpacing=2
|+ <math>\Phi(f) : \Phi(X) \to \Phi(Y)</math>
 
 
|
 
|
 
|+ <math>\Phi(f) : \Phi(X) \to \Phi(Y)</math>
 
| <hask>map even:: Maybe Int -> Maybe Bool</hask>
 
| <hask>map even:: Maybe Int -> Maybe Bool</hask>
 
|-
 
|-
Line 97: Line 97:
   
 
{| Border=2 CellPadding=2 CellSpacing=2
 
{| Border=2 CellPadding=2 CellSpacing=2
|+ <math>\Psi(f) \cdot \eta_X = \eta_Y \cdot \Phi(f)</math>
+
|+ <math>\Psi(f) \cdot \eta_X = \eta_Y \cdot \Phi(f)</math>, both paths span between <math>\Phi(X) \to \Psi(Y)</math>
  +
| RowSpan=2|
|
 
  +
| ColSpan=2|<hask>Maybe Int -> [Bool]</hask>
 
|-
 
| <hask>map even . maybeToList</hask>
 
| <hask>map even . maybeToList</hask>
 
| <hask>maybeToList . map even</hask>
 
| <hask>maybeToList . map even</hask>

Revision as of 20:02, 2 October 2006

Example: maybeToList

 map even $ maybeToList $ Just 5

yields the same as

 maybeToList $ map even $ Just 5

yields: both yield

 [False]

Vertical arrows: sides of objects

… showing the operation of the natural transformation.

maybeToList :: Maybe a -> [a]

Left: side of X object

maybeToList :: Maybe Int -> [Int]
Nothing []
Just 0 [0]
Just 1 [1]

Right: side of Y object

maybeToList :: Maybe Bool -> [Bool]
Nothing []
Just True [True]
Just False [False]

Horizontal arrows: sides of functors

 even :: Int -> Bool

Side of functor

map even:: Maybe Int -> Maybe Bool
Nothing Nothing
Just 0 Just True
Just 1 Just False

Side of functor

map even:: [Int] -> [Bool]
[] []
[0] [T]rue
[1] [F]alse

Commutativity of diagram

, both paths span between
Maybe Int -> [Bool]
map even . maybeToList maybeToList . map even
Nothing [] []
Just 0 [True] [True]
Just 1 [False] [False]

Remarks

  • even has a more general type (Integral a => a -> Bool) than described here
  • 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.