Category theory/Natural transformation: Difference between revisions
EndreyMark (talk | contribs) (In fact, even has a more general type (Integral a => a -> Bool) than described here) |
EndreyMark (talk | contribs) m (Rephrasings) |
||
Line 13: | Line 13: | ||
</haskell> | </haskell> | ||
=== Vertical arrows === | === Vertical arrows: sides of objects === | ||
… showing the operation of the natural transformation. | |||
:<math>\eta : \Phi \to \Psi</math> | :<math>\eta : \Phi \to \Psi</math> | ||
<haskell>maybeToList :: Maybe a -> [a]</haskell> | <haskell>maybeToList :: Maybe a -> [a]</haskell> | ||
==== Left: side of X object ==== | |||
{| Border=2 CellPadding=2 CellSpacing=2 | Dia | {| Border=2 CellPadding=2 CellSpacing=2 | Dia | ||
Line 32: | Line 36: | ||
| <hask>[1]</hask> | | <hask>[1]</hask> | ||
|} | |} | ||
==== Right: side of Y object ==== | |||
{| Border=2 CellPadding=2 CellSpacing=2 | Dia | {| Border=2 CellPadding=2 CellSpacing=2 | Dia | ||
Line 48: | Line 54: | ||
|} | |} | ||
=== Horizontal arrows === | === Horizontal arrows: sides of functors === | ||
:<math>f : X \to Y</math> | :<math>f : X \to Y</math> | ||
Line 56: | Line 60: | ||
even :: Int -> Bool | even :: Int -> Bool | ||
</haskell> | </haskell> | ||
==== Side of \Phi functor ==== | |||
{| Border=2 CellPadding=2 CellSpacing=2 | {| Border=2 CellPadding=2 CellSpacing=2 | ||
Line 71: | Line 77: | ||
| <hask>Just False</hask> | | <hask>Just False</hask> | ||
|} | |} | ||
==== Side of \Psi functor ==== | |||
{| Border=2 CellPadding=2 CellSpacing=2 | {| Border=2 CellPadding=2 CellSpacing=2 | ||
Line 106: | Line 114: | ||
| <hask>[False]</hask> | | <hask>[False]</hask> | ||
|} | |} | ||
=== Remarks === | |||
* <hask>even</hask> has a more general type (<hask>Integral a => a -> Bool</hask>) 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. |
Revision as of 19:41, 2 October 2006
Example: maybeToList
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 \Phi functor
map even:: Maybe Int -> Maybe Bool
| |
Nothing
|
Nothing
|
Just 0
|
Just True
|
Just 1
|
Just False
|
Side of \Psi functor
map even:: [Int] -> [Bool]
| |
[]
|
[]
|
[0]
|
[T]rue
|
[1]
|
[F]alse
|
Commutativity of diagram
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.