Google Tech Talk May 29, 2015 ("show more" for more information) Presented by Jannis Limperg https://wiki.haskell.org/ZuriHac2015#Jannis_Limperg ABSTRACT The Monad type class is used extensively in both the Haskell standard library and numerous third-party libraries for all sorts of domains. Yet, it is also one of the most infamous roadblocks for Haskell beginners, which this talk aims to address. In order to build an intuition for what a Monad 'is' and especially for how it's useful in everyday programming, we will take a look at several important instances of the Monad class from the standard library (and the de-facto standard transformers package): Maybe, Either, [], State and IO. The examples will focus for the most part on how these very different types are all instances of the abstract concept of a Monad, and how using this abstraction and the associated syntactic sugar (do notation) can lead to cleaner, more readable code. Afterwards, we will take a look at how the Monad class is defined by a set of simple laws that every Monad instance must obey. Time permitting, we may also touch upon slightly more advanced topics such as Monad transformers and how Monads are related to Functors and Applicative Functors. Prerequisites: Learn Yourself A Haskell up to and including chapter 8 (or of course anything else that covers the same topics). In particular, a basic understanding of algebraic data types and type classes is essential. Slides and code examples for this talk are available here: https://github.com/meiersi/HaskellerZ/tree/master/meetups/20150529-ZuriHac2015_Jannis_Limperg-Monads_by_Example The code shown in this talk is available at the above link so you can follow along if desired.
Get notified about new features and conference additions.