- Functor
- Functors apply a function to a wrapped value:
- Easy example to remember it by: getPostTitle <$> (findPost 1)
- A value can be in a context. Now when you apply a function to this value, you’ll get different results depending on the context.
- A
Functor
is any data type that defines howfmap
applies to it. - The
Maybe
data type defines two related contexts: we’ll see how function application is different when something is aJust a
versus aNothing
When a value is wrapped in a context, you can’t apply a normal function to it:
This is wherefmap
comes in- Applicatives
- Applicatives apply a wrapped function to a wrapped value:
- Easy example to remember it by: Just (+5) <*> (Just 3)
- Applicatives allow you to apply a function that takes two arguments to two wrapped values?
- Monads
- Monads apply a function that returns a wrapped value to a wrapped value.
- > Just 20 >>= half >>= half >>= half
http://adit.io/posts/2013-04-17-functors,_applicatives,_and_monads_in_pictures.html
No comments:
Post a Comment