University of Cambridge > Talks.cam > Churchill CompSci Talks > Programming with Monads

Programming with Monads

Add to your list(s) Download to your calendar using vCal

If you have a question about this talk, please contact Matthew Ireland.

As we all know, functional programming is a different programming paradigm in which functions have no side effects. This kind of pure functions has many advantages such as allowing us to reason about the program in an equational way and use arbitrary evaluation order, (and one in particular with practical significance, lazy evaluation). However, side effects are common, if not essential, to real programs we use. Some functional programming languages simply adds in imperative features such as references and sequential execution. This broke the referential transparency and we lose the advantages aforementioned. Monads were invented by the purist to support side effects and at the same time maintain referential transparency. However, many people are confounded by the “inappropriately chosen name” (the inventor of Haskell admitted this) and the underlying relation to the so-called “category theory”. In this talk, we will explore some examples and derive Monads from first principles. We will see that they are nothing but another example of abstraction, the fundamental idea of computer science. In the second half of the talk, we will explore some more advanced usages of monads.

This talk is part of the Churchill CompSci Talks series.

Tell a friend about this talk:

This talk is included in these lists:

Note that ex-directory lists are not shown.

 

© 2006-2017 Talks.cam, University of Cambridge. Contact Us | Help and Documentation | Privacy and Publicity