Category theory/Natural transformation
From HaskellWiki
(Difference between revisions)
m (Better section structure) |
(In fact, even has a more general type (Integral a => a -> Bool) than described here) |
||
| Line 16: | Line 16: | ||
:<math>\eta : \Phi \to \Psi</math> | :<math>\eta : \Phi \to \Psi</math> | ||
| + | <haskell>maybeToList :: Maybe a -> [a]</haskell> | ||
{| Border=2 CellPadding=2 CellSpacing=2 | Dia | {| Border=2 CellPadding=2 CellSpacing=2 | Dia | ||
| Line 48: | Line 49: | ||
=== Horizontal arrows === | === Horizontal arrows === | ||
| + | |||
| + | /Note: <hask>even</hask> has a more general type (<hask>Integral a => a -> Bool</hask>) than described here/ | ||
:<math>f : X \to Y</math> | :<math>f : X \to Y</math> | ||
| + | <haskell> | ||
| + | even :: Int -> Bool | ||
| + | </haskell> | ||
{| Border=2 CellPadding=2 CellSpacing=2 | {| Border=2 CellPadding=2 CellSpacing=2 | ||
Revision as of 19:21, 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
maybeToList :: Maybe a -> [a]
| maybeToList :: Maybe Int -> [Int] | |
| Nothing | [] |
| Just 0 | [0] |
| Just 1 | [1] |
| maybeToList :: Maybe Bool -> [Bool] | |
| Nothing | [] |
| Just True | [True] |
| Just False | [False] |
1.2 Horizontal arrows
/Note:even
Integral a => a -> Bool
even :: Int -> Bool
| map even:: Maybe Int -> Maybe Bool | |
| Nothing | Nothing |
| Just 0 | Just True |
| Just 1 | Just False |
| map even:: [Int] -> [Bool] | |
| [] | [] |
| [0] | [T]rue |
| [1] | [F]alse |
1.3 Commutativity of diagram
| map even . maybeToList | maybeToList . map even | |
| Nothing | [] | [] |
| Just 0 | [True] | [True] |
| Just 1 | [False] | [False] |
