cblp / hse-haskell-course-src

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Syllabus

  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 ad-hoc 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 MonadPlus.
  8. Monads: IO, State, Writer, Reader.
  9. Monad transformers.
  10. Concurrent and parallel Haskell: async library.

Sources

Articles and blog posts

Books

Videos

  1. Simon Peyton Jones. Haskell is Useless
  2. Simon Peyton Jones. A History of Haskell: being lazy with class
  3. Philip Wadler. Propositions as types
  4. Philip Wadler. The First Monad Tutorial
  5. A Haskell course by Bartosz Milewski
  6. A more comprehensive (than ours) Haskell course by Denis Moskvin, Computer Science Centre (in Russian)
  7. A lecture course on GHC by Vitaly Bragilevsky, Computer Science Club (in Russian)
  8. A lecture course on type inference by Vitaly Bragilevsky, Computer Science Club (in Russian)
  9. Vladislav Zavialov. Introduction to GUI programming in Haskell
  10. Simon Marlow. Parallel and concurrent programming in Haskell

Guidelines

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

About


Languages

Language:TeX 100.0%