Monads are not special
- Monads are not fundamental to computation.
- Monads are but one type of structure that can be described in Haskell (others include groups, monoids, semilattices and posets).
- The IO constructor and its monadic interface allow embedding of imperative programs in Haskell.
- Whenever we ask ourselves if there is anything special about IO, we really should be asking if there is anything special about imperative programming.
- Imperative programming is mainly of historical interest
- It is widely known that imperative programming does not scale.
- The future of programming will probably not be imperative.
- We should move away from relying on the
IO
constructor in Haskell.
Further reading #
- Imperative functional programming (SPJ and Wadler, 1992)
- https://wiki.haskell.org/What_a_Monad_is_not
- http://conal.net/blog/posts/the-c-language-is-purely-functional
5
Kudos
5
Kudos