Difference between revisions of "Category theory/Natural transformation"
Jump to navigation
Jump to search
Example:
EndreyMark (talk | contribs) m (Better section structure) |
EndreyMark (talk | contribs) (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
Example: maybeToList
maybeToList
map even $ maybeToList $ Just 5
yields the same as
maybeToList $ map even $ Just 5
yields: both yield
[False]
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]
|
Horizontal arrows
/Note: even
has a more general type (Integral a => a -> Bool
) than described here/
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
|
Commutativity of diagram
map even . maybeToList
|
maybeToList . map even
| |
Nothing
|
[]
|
[]
|
Just 0
|
[True]
|
[True]
|
Just 1
|
[False]
|
[False]
|