Haskell CS 421 LogoCS 421 — Programming Languages

Monads

Synopsis

Monads are a famous feature of the Haskell programming language, and have started to find their way in many other languages as well. In this period we’ll cover type classes, which provide the abstraction necessary for monads (and many other things). Then we’ll cover the functor type class, which allows us to define a map-like function for any type we want. Finally, we’ll cover monads themselves.

One feature about monads is that they inspire programmers to write blog posts and tutorials about them. For the most part, they tell you more about the state of mind that that particular programmer had when monads finally “clicked” than about monads themselves. The article below, You could have invented monads, is a refreshing change, and I recommend you read it, even before watching my video.

Videos

Handouts

Further Reading