Welcome to the Haskell by Doing course! This is a modern, GitHub-optimized path to mastering Haskell, designed to grow your skills and your profile β.
Whether you're just starting out or brushing up, this course will walk you through functional programming concepts using a structured, visual, and hands-on approach.
- β Beginner-friendly explanations
- π Real-world code examples
- π Step-by-step challenges
- π± Build incrementally- one concept at a time
- π Grow your GitHub with visible progress
- Short, clear explanations
- π‘ Minimal but focused code examples
- π¨ Visuals and edge cases explained
- Solve challenges in each lesson folder
- β¬οΈ Push your work to GitHub
- π Add notes on what confused you
- Each module builds on the last
- π§ Develop intuition, not just syntax
- Use the built-in note system (or create your own)
- π© Keep track of mistakes, gotchas, and "aha" moments
All lessons and notes use Markdown (.md) files for a clean, readable experience in VS Code.
π‘ Tip:
- Right-click any
.mdfile (likeREADME.md,01-Fundamentals.md, etc.) and choose βOpen Previewβ- Or use the shortcut:
- Mac:
Cmd + Shift + V- Windows/Linux:
Ctrl + Shift + V
This opens a styled, easy-to-read view, perfect for:
| π What? | π File(s) |
|---|---|
| Lecture explanations | /content/*.md |
| Your personal notes | /notes/*.md |
| Exercise walkthroughs | lesson folders |
You can also split the editor and open the preview side-by-side with the text for even better workflow!
Install via GHCup:
curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | shThis will install:
ghcβ The Haskell compilercabalβ Standard Haskell build toolstackβ Optional alternative build tool (you may not need it, but it's good to have)
After installation, restart your terminal, then check your install:
ghc --version
cabal --version
stack --version # optionalβ If you see version numbers, your installation is successful.
Download Visual Studio Code if you donβt have it.
Recommended Extensions:
| Extension | Publisher | Why |
|---|---|---|
| π£ Haskell | Haskell | Full support: errors, warnings, type hints, go-to-definition (HLS). |
| π¨ Haskell Syntax Highlighting | Justus Adam | Adds proper syntax coloring for .hs files. |
- Live Server or Code Runner β Not needed for Haskell
- Old/unmaintained Haskell extensions β stick to the two above
After installing the Haskell extension, VS Code will prompt you to install Haskell Language Server (HLS) if it isnβt already set up.
π Accept that prompt.
With both extensions installed, youβll get syntax highlighting + smart Haskell editing.
The course is pre-structured, i.e. you donβt need to create a new project. Just clone and open it:
git clone https://github.com/AskewCow/haskell-by-doing
cd haskell-course
code . # Opens folder in vscYouβre ready to go! π Start with 01-Fundamentals/content
Open any .hs file in VS Code and make sure you see:
- Autocompletion
- Type info when hovering over expressions
- Inline error messages (if somethingβs wrong)
- Haskell-specific color syntax
If all of those are working, then HLS is active and everything is set up properly.