8.7

Notes

These are the course notes for CMSC 433. They can be a bit rough around the edges in places, but please keep in mind this is a living document. If you spot errors, confusing prose, missing parts, or generally have suggestions for improving the material, please, please, please let us know!

    1 Getting Started with Haskell

    2 DLists, faster lists

    3 Getting comfortable with first-class functions

    4 User-defined Datatypes

    5 Focusing on Folds

    6 Folds over non-list types

    7 Generalizing Operations

    8 Like folds, but again.

    9 Functors: Structure-preserving maps

    10 Monads

    11 Monads 2

    12 Concurrency 1: Getting Started with MVars

    13 Concurrency 2: Getting comfortable with MVars

    14 Property-Based Testing: Enumeration

    15 Software Transactional Memory: Deadlock-free concurrency

    16 An API for asynchronous programming

    17 Modelling effects with Monads