Learn Haskell
Structured lessons from the basics up — follow the path below in order, at your own pace.
-
1
Level 1 — Beginner Beginner 25 lessons
Start here if you have never written a line of Haskell before. No functional programming experience is required, though knowing the basics o...
Lessons in this module
What Is Haskell? Why Learn Haskell? What Can You Do With Haskell? Installing Haskell Setting Up Your Environment Your First Program Using GHCi How Haskell Code Runs Values and Basic Types Numbers and Arithmetic Types and Type Inference Defining Functions Currying and Partial Application Composition and the $ Operator Conditionals: if and Guards Lists List Functions Ranges and List Comprehensions Tuples Pattern Matching let and where Recursion Strings and Characters Basic Input and Output Comments and Style -
2
Beginner Projects Beginner 1 lesson
Build these on your own using what you learned in Level 1. Each one uses functions, lists, pattern matching, recursion, and simple input and...
-
3
Level 2 — Intermediate Intermediate 17 lessons
These lessons cover higher order functions, folds, algebraic data types, records, Maybe and Either, type classes, Functor, Foldable, Applica...
Lessons in this module
-
4
Intermediate Projects Intermediate 1 lesson
Build these using algebraic data types, type classes, monads, Data.Map, error handling, and cabal projects from Level 2. 1. Expression Evalu...
-
5
Level 3 — Advanced Advanced 15 lessons
These lessons cover testing with HUnit, QuickCheck, and Hspec, monad transformers, mtl, concurrency with threads, MVar, and async, software...
Lessons in this module
Unit Testing with HUnit and Hspec Property-Based Testing with QuickCheck State, Reader, and Writer Monad Transformers mtl-Style Classes Concurrency: Threads, MVar, and async Software Transactional Memory Strictness and Space Leaks Profiling and Optimization Language Extensions GADTs and Type Families Parser Combinators JSON with aeson Web APIs with Servant Haskell in Production -
6
Advanced Projects Advanced 1 lesson
Build these using testing, monad transformers, concurrency, parsing, and real world libraries from Level 3. 1. A Small Interpreter Parse a t...
-
7
What You Should Know Now — and What's Next 1 lesson
What You Should Know Now Expressions, types, type inference, and reading type signatures Functions, currying, sections, composition, and rec...