Summer 2015 Haskell Class
June 29 - September 23, 2015; Chicago, IL
- Lecture 1 on June 29 Introduction ("Why Haskell?") as well as the core ideas behind functional programming -- and why they're important. Initial foray into Haskell coding with
ghciand an explanation of function currying.
- Lecture 2 on July 1. Covered: user-defined data types and motivations for using them, sum and product types, pattern matching.
- Lab 1 on July 6. Covered: structure of a single-module project,
ghcand some basic console I/O.
- Lecture 3 on July 8. Covered: review of anonymous functions, type unification, and an introduction to Haskell's laziness.
- Lecture 4 on July 13. Covered: weak head normal form (WHNF) and list functions.
- Lecture 5 on July 16. Covered: type classes such as
- Lecture 6 on July 20. Covered: higher-kinded types and type classes
- Lecture 7 on July 22. Covered:
Monadlaws, monad transformers.
- Lab 2 on August 5. Covered: modules and namespacing, applicative parsing with
parsec, a monad-transformer stack (
Lispmonad), and sets and maps (
- Lecture 8 on August 13. Covered:
Traversable, plus a potpourri of language extensions (including
- Lecture 9 on August 17. Covered: IO, files and
Handle, error-handling and the
- Lecture 10 on September 9. Covered: Lenses! (Also, Prisms and Traversals, very briefly.)