stack
,cabal
, andHello World
in Haskell. Module system.GHC
andGHCi
.Hackage
andHoogle
.- Introduction to Haskell: Basic syntax, partial application, currying, infix operators. Lists, infinite lists, list comprehension.
- Polymorphism: parametric polymorphism and ad-hoc polymorphism. Typeclasses and constraints. Classes
Eq
,Ord
,Num
,Enum
and their instances. - Datatypes: data, newtype, type. Pattern-matching.
Functor
and its laws,Foldable
,Monoid
. Examples.Applicative
and its laws,Traversable
. Examples.Monad
and its laws, examples. Do-notation. Alternative andMonadPlus
.- Monads:
IO
,State
,Writer
,Reader
. - Monad transformers.
- Concurrent and parallel Haskell:
async
library.
- Simon Peyton Jones. Haskell is Useless
- Simon Peyton Jones. A History of Haskell: being lazy with class
- Philip Wadler. Propositions as types
- Philip Wadler. The First Monad Tutorial
- A Haskell course by Bartosz Milewski
- A more comprehensive (than ours) Haskell course by Denis Moskvin, Computer Science Centre (in Russian)
- A lecture course on GHC by Vitaly Bragilevsky, Computer Science Club (in Russian)
- A lecture course on type inference by Vitaly Bragilevsky, Computer Science Club (in Russian)
- Vladislav Zavialov. Introduction to GUI programming in Haskell
- Simon Marlow. Parallel and concurrent programming in Haskell
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.