Skip to content

Abstracts.2020.Monads

Fabian edited this page Sep 12, 2021 · 2 revisions

Notions of Computation and Monads

by Carlos Tomé Cortiñas

Abstract

Monads are pervasive nowadays in programming languages. Pure functional languages, such as Haskell, go even further and use monads like IO as the centerpiece to structure programs that produce side-effects (e.g. printing to the screen). The concept of monad was developed in the framework of Category Theory during the 50s and 60s but it wasn't until much later, in the 90's, that found its way into Computer Science thanks to Eugenio Moggi. Indeed his very celebrated insight was that monads serve as a unifying concept to give semantics to effectful computations. In this talk, I will try to explain and motivate Moggi's idea. To that matter, and following his lead, I will look at (a fragment of) the computational lambda-calculus λc [Führmann, Appendix A], an impure programming language, and discuss how monads can be used to construct models.

References to Moggi's papers:

References to work by others:

Computational effects and algebra:

Monads and Kleisli triples:

Related talks:

Examples

  • the Kleisli category of the maybe monad X↦X+1 is (isomorphic to) the category of sets and partial functions
  • the Kleisli category of the powerset monad X↦℘(X) is (isomorphic to) the category of sets and relations
Clone this wiki locally