Functors, applicatives, and monads are among the most searched words related to functional programming, which makes sense if you consider that no-one knows what they mean (not really, there are bright people that know what they're talking about). The confusion about monads, in particular, has become a joke/meme in the programming community:
"A monad is a monoid in the category of endofunctors, what's the problem?"
This quote is fictionally attributed to Philip Wadler by James Iry on his classic blog post, A Brief, Incomplete and Mostly Wrong History of Programming Languages, (http://james-iry.blogspot.co.uk/2009/05/brief-incomplete-and-mostly-wrong.html).
In this chapter, we will cover the following topics:
- Functors
- Options, lists, and functions as functors
- Monads
- Applicatives