Haskell Monads and Typeclasses

Isaac Jones

Haskell is a polymorphicly typed, lazy, purely functional programming language. It can be used in a variety of applications like robot control, web servers, artificial intelligence, etc. You can get the tarball (with examples) here: http://www.syntaxpolice.org/lectures/haskellTalk2/haskellTalk2.tgz


Table of Contents
1. Haskell Intro
2. Speaker Background
3. Monads
3.1. The IO monad
3.2. Monad Types
3.3. IO Frustration
3.4. Calling an IO Function
3.5. Why Use Monads?
3.6. Trim Only One
3.7. A monad to Manage Your Own State
3.8. Tree Example Revisited
3.9. Defining a Monad
3.10. Practice Problem
3.11. Take-away points
4. Type Classes
4.1. More general types
4.2. What does it take to be a Num?
4.3. Another Example
4.4. The Eq Typeclass
4.5. Deriving
4.6. Try it
5. MUTEX!