Resources
Lecture Notes
The lecture notes can be found here. If you find typos or similar, submit an issue on the gitlab repo, where you can also always download the latest version. I'll update the local version here whenever there are changes regarding content, but not for minor typos and such.
Setting up Haskell
To do the assignments it is most convenient to be able to develop on your own computer. The best way to install GHC, the primary Haskell compiler, is to use GHCup: go to https://www.haskell.org/ghcup/ and follow the instructions for your platform. During the GHCup installation, be sure to install GHC and Cabal, but not Stack (nothing will necessarily go wrong if you do, but it can be more confusing to have both Cabal and Stack installed). If you want interactive compiler feedback in your editor, also install HLS (Haskell Language Server). (For VSCode there is a Haskell plugin that works well with HLS.)If the GHCup installation does not work, first ask us (we might know what is going wrong and be able to fix it). If we cannot fix it, an alternative is to install Stack using the instructions at https://docs.haskellstack.org/en/stable/; if you do this, you will need the stack instructions instead of the cabal instructions for the assignments in this course.
On Windows, a common cause for GHCup installation failure is overly aggressive anti-virus software; this may be the cause if the initial part of the script seems to work but downloading the actual software later fails. If you run into this, a fix is probably to remove your current anti-virus and install Microsoft Defender instead.
Further reading
- Robert Harper's Practical Foundations of Programming Languages (free preview of second edition)
- Benjamin Pierce's Types and programming languages.
Haskell resources
Online resources
- Graham Hutton's introduction to FP course videos
- #haskell IRC channel (highly recommended)
- Haskell portal
- Haskell tutorial videos
- What I wish I knew when learning Haskell
Mailing lists
Language tutorials & background reading
- Learning Haskell: Gentle and fun introduction to the essentials of Haskell, including screencasts
- Learn You A Haskell For Great Good! Nicely illustrated, hands-on tutorial
- Haskell Programming from First Principles: Excellent and deep introduction to Haskell that gets superb reviews
- Learn Haskell in 10 minutes: To get a first idea
- Write Yourself a Scheme in 48 Hours: Hands-on tutorial including advanced topics
- Real World Haskell
- Beautiful concurrency
- Haskell Tutorial for C programmers
- Haskell Wikibook
- How to write a Haskell program
Language reference
- The Haskell Cheatsheet: Longer than your average cheatsheet, but a nice summary of the core Haskell syntax
- Language standard: Not good for learning Haskell, but it is the definitive reference when it comes to tricky language questions
Libraries
Tools
Last modified: Tue Nov 14 18:17:51 CET 2023