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