Haskell
Learn Haskell: pure functions, laziness, ADTs and type classes, Functor/Applicative/Monad, IO, STM concurrency, QuickCheck, parsers and web APIs.
What you'll learn
- Explain purity, laziness and Haskell's type system, and set up GHC, Cabal and GHCi.
- Write functions with pattern matching, guards, recursion, folds and list comprehensions.
- Model domains with algebraic data types, records, newtypes, type classes, Maybe and Either.
- Use Functor, Applicative, Monad, Foldable and Traversable, and manage IO, exceptions and laziness.
- Structure real programs with modules, Text, containers, mtl, STM and async concurrency.
- Test with Hspec and QuickCheck, build parsers and JSON APIs, and apply advanced types and profiling wisely.
Syllabus
Getting Started with Haskell
- What Haskell Is and Why Learn It
- Installing GHC, Cabal, Stack and GHCi
- Expressions, Types and Functions
Lists, Pattern Matching and Recursion
- Lists, Ranges and Comprehensions
- Pattern Matching, Guards and case
- Recursion and Higher-Order Functions
Algebraic Data Types and Type Classes
Functor, Applicative and Monad
IO, Laziness and Structural Classes
Real-World Haskell
- Modules, Packages, Text and Containers
- Monad Transformers and Application Structure
- Concurrency: Threads, MVar, STM and async