15-312 Foundations of Programming Languages
Lecture 17: Monadic Input and Output
In this lecture we review the store monad introduced in the last
lecture and then show how to encapsulate input and output as well
inside the monad. We illustrate by example that monads simplify
reasoning about the language, but can complicate programming because
potentially effectful computation must be explicitly sequenced.