Monads you already use (without knowing it)
Monads are a little bit like Quantum Physics: If you think you understand quantum mechanics, you don't understand quantum mechanics.
Monads are very useful for chaining computation together, in a simple way. The best explanation I've heard for them so far is that they are `programmable semicolons'.
In this session, I'll describe a few patterns that are solved by monads in some FP languages, and how you are already using them.
Some monads I plan to cover:
* Maybe Monad (being the easiest to explain)
* List monad, and how it is used to model non-determinism
* The state monad
* The IO monad
And maybe a few others
Outline/structure of the Session
Intro to talk
Brief tongue in cheek definitions of monads => Programmable semicolons, Boxes to put things in, etc...
Brief Intro to classical definition of monads
A simple monad with the Maybe Monad, starting with nil and getting to the monad.
List Monad for non determinism
Other monads as time permits.
This talk is mostly aimed at Beginner programmers. After this talk, programmers should have some basic idea of the things monads are used for, and some equivalent patterns in the non-FP world.