In this series of posts, I'll look at how you can thread state through a series of pure functions in a convenient way.
To start with, I'll tell the story of Dr Frankenfunctor and the Monadster, and how the Doctor needed a way to create "recipes" that were activated when lightning struck.
The Doctor then devised ways to work with these recipes using functions such as map
, bind
and apply
.
In the final post, we'll see how we can use a computation expression to make the coding cleaner, and how these techniques can be generalized into the so-called "state monad".
Warning! These posts contains gruesome topics, strained analogies, discussion of monads
- Dr Frankenfunctor and the Monadster. Or, how a 19th century scientist nearly invented the state monad.
- Completing the body of the Monadster. Dr Frankenfunctor and the Monadster, part 2.
- Refactoring the Monadster. Dr Frankenfunctor and the Monadster, part 3.