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*

Or, how a 19th century scientist nearly invented the state monad

Dr Frankenfunctor and the Monadster, part 2

Dr Frankenfunctor and the Monadster, part 3