Category theory/Natural transformation

From HaskellWiki
< Category theory
Revision as of 19:21, 2 October 2006 by EndreyMark (talk | contribs) (In fact, even has a more general type (Integral a => a -> Bool) than described here)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Example: 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]