The Imperative Programming Monad
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.