Building on the power of functors we examine a few scenarios where a normal Functor is problematic. Fortunately, there is a closely related structure known as an Applicative Functor that can provide the capabilities to solve a broader range of problems.
Episode 17 patrons:
Chad Wooley
David Keathley
Andre Carvalho
Show Notes:
Coconut programming language: http://coconut-lang.org/
Hack nights instead of presentations: http://tech.noredink.com/post/142283641812/designing-meetups-to-build-better-communities
class Functor f => Applicative f where
pure :: Applicative f => a -> f a
ap :: Applicative f => f (a -> b) -> f a -> f b
Example of applicative usage:
pure (+) <*> Just 3 <*> Just 2 -- this results in Just 5
(+) <$> Just 3 <*> Just 2 -- this is the same as above
liftA2 (+) (Just 3) (Just 2) -- alternate form using lift instead of infix operators