Summer 2015 Haskell Class
Switch branches/tags
Nothing to show
Clone or download

README.md

Summer 2015 Haskell Class

June 29 - September 23, 2015; Chicago, IL

Course slides

  • 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 ghci and 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, ghc and 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 Eq, Ord, and Monoid.
  • Lecture 6 on July 20. Covered: higher-kinded types and type classes Functor, Applicative, and Monad.
  • Lecture 7 on July 22. Covered: Reader, Writer monads, Applicative and Monad laws, monad transformers.
  • Lab 2 on August 5. Covered: modules and namespacing, applicative parsing with parsec, a monad-transformer stack (Lisp monad), and sets and maps (Data.Set, Data.Map).
  • Lecture 8 on August 13. Covered: Foldable and Traversable, plus a potpourri of language extensions (including MultiParamTypeClasses and FunctionalDependencies.)
  • Lecture 9 on August 17. Covered: IO, files and Handle, error-handling and the Exception type-class. Also, IORef and MVar.
  • Lecture 10 on September 9. Covered: Lenses! (Also, Prisms and Traversals, very briefly.)

Lecture videos