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.
- Philip Wadler. Comprehending Monads
- Philip Wadler. Monads for functional programming
- Philip Wadler. Theorems for Free
- Simon Peyton Jones, Andrew Gordon, Sigbjorn Finne. Concurrent Haskell
- Paul Hudak, John Hughes, Simon Peyton Jones, Philip Wadler. A history of Haskell: being lazy with class
- Simon Peyton Jones, Dimitrios Vytiniotis, Stephanie Weirich, Mark Shields. Practical type inference for arbitrary-rank types
- Cordelia V Hall, Kevin Hammond, Simon Peyton Jones, Philip L Wadler. Type classes in Haskell
- Heitor Toledo Lassarote de Paula. A Brief Introduction to Template Haskell
- Vladislav Zavialov. Type Families in Haskell: The Definitive Guide
- Vladislav Zavialov. Why Dependent Haskell is the Future of Software Development
- Vladislav Zavialov. Haskell to Core: Understanding Haskell Features Through Their Desugaring
- Simon Marlow, Simon Peyton Jones. The Glasgow Haskell Compiler
- Miran Lipovača. Learn You a Haskell for Great Good
- Sandy Maguire. Thinking with Types: Type-Level Programming in Haskell
- Vitaly Bragilevsky. Haskell in Depth
- Alejandro Serrano Mena. Practical Haskell
- Graham Hutton. Programming in Haskell
- Benjamin C. Pierce. Types and Programming Languages
- Morten Heine Sørensen, Pawel Urzyczyn. Lectures on the Curry-Howard Isomorphism
- J. Roger Hindley. Basic Simple Type Theory
- Henk Barendregt. Lambda calculi with types
- Therry Coquand. Type theory
- Jean-Yves Girard, Yves Lafont, Paul Taylor. Proofs and types
- 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.