HSE Haskell course preliminary programme

  1. Stack, cabal, and Hello World in Haskell. Module system. GHC and GHCi. Hackage and Hoogle.
  2. Introduction to Haskell: Basic syntax, partial application, currying, infix operators. Lists, infinite lists, list comprehension.
  3. Polymorphism: parametric polymorphism and special polymorphism. Typeclasses and constraints. Classes Eq, Ord, Num, Enum and their instances.
  4. Datatypes: data, newtype, type. Pattern-matching.
  5. Functor and its laws, Foldable, Monoid. Examples.
  6. Applicative and its laws, Traversable. Examples.
  7. Monad and its laws, examples. Do-notation. Alternative and Monad Plus.
  8. Monads: IO, State, Writer, Reader and their uses.
  9. Monad transformers.
  10. Concurrent and parallel Haskell: introduction to the GHC.Conc and Control.Concurrent modules.
  11. Concurrent and parallel Haskell: async library.

Guidelines

We strictly recommend you to follow the Haskell style guideline described in the following link in order to make a code in your homework much more readable.