As the title of this blog post implies, this article contains a collection of Monad tutorials. I’ll only include the good ones as I find them (because there’s obviously no value in reading a bad Monad tutorial).
Here is the current list:
- Monads (A Gentle Introduction to Haskell)
- You Could Have Invented Monads
- Chapter 7 of the “Real World Haskell” book
- Learn You a Haskell for Great Good (book)
There are more, good Monad tutorials out there, and I’ll share those as I remember them.
The article, Monads are hard because ..., shares this quote:
"Monads are hard because there are so many bad monad tutorials getting in the way of finally finding Wadler’s nice paper."
and this quote from Wadler’s paper:
"Pure functional languages have this advantage: all flow of data is made explicit. And this disadvantage: sometimes it is painfully explicit."
both of which made me start my own collection of Monad tutorials.
In my own experience, I’ll say that Monads are hard if you try to understand them without first understanding the problem they’re intended to solve. I really began to understand the need for them as I read Chapter 7 of the Real World Haskell book.