Up to this point I have not followed through on my promise to offend
everyone in general, and in particular,
functional-programming-in-imperative-languages advocates. Everything’s
been pretty positive about functional programming.
This is where the tide is going to start to turn, but I’m going to
lead into it a bit before getting really offensive.
“Programmable Semicolons”
Let’s talk about monads, and in
particular, monads in their capacity as “programmable semi-colons”.
If you understand why monads are “programmable semicolons” it’s a
reasonably good sign you have a good understanding of them. I don’t
think it’s the best way to understand them from the beginning, but
it’s a good development of an initial understanding. I am not jamming a full monad tutorial in here when I’ve
already got one (see prior link), so I’m just going to assume that
you’ve read that and conclude with why this makes sense.