| Chapter |
Topics |
| 0 – Prologue |
Motivation, layout, and references for the Declarative Code Story. |
| 1 – Expressions & Values |
Pure expressions, immutable values, value semantics, referential transparency. |
| 2 – Types & Type Inference |
Algebraic data types, Hindley-Milner inference, phantom types, dependent and refinement types. |
| 3 – Pattern Matching & Destructuring |
Exhaustive structural matching, nested patterns, guards, record destructuring. |
| 4 – Functions as Values |
Pure functions, first-class and higher-order functions, composition, currying and partial application. |
| 5 – Recursion |
Structural recursion, mutual recursion, corecursion and infinite structures, tail call optimization. |
| 6 – Higher-Order Functions & Combinators |
map, filter, fold; scan, zip, unfold; applicative and monoidal operations; point-free composition. |
| 7 – Lazy Evaluation |
Call-by-need semantics, thunks, infinite streams and sequences, lazy vs strict modes. |
| 8 – Monads & Effects |
Option/Maybe, Result/Either, list monad, IO and state monads, effect systems. |
| 9 – Type Classes & Interfaces |
Ad-hoc polymorphism, instance derivation, higher-kinded types, Functor/Applicative/Monad hierarchy. |
| 10 – Immutability & Persistent Data |
Persistent lists, trees, maps; structural sharing; transient optimization; copy-on-write. |
| 11 – Declarative Concurrency |
Software transactional memory, actor model, functional reactive programming, dataflow and streaming. |
| 12 – Queries & Rules |
Relational queries, logic rules and unification, constraint satisfaction, pattern-based rewriting. |
| 13 – Projects |
Ten declarative programming projects, each instructive and producing a useful program or library. |
| Reference |
Description |
|
Haskell Documentation
|
Official Haskell language documentation, tutorials, and library references.
|
|
F# Documentation - Microsoft
|
Language reference, tutorials, and API docs for F# on .NET.
|
|
The Rust Programming Language
|
Covers Rust’s functional features: iterators, closures, pattern matching, and traits.
|
|
Learn You a Haskell for Great Good
|
Approachable introduction to Haskell covering types, type classes, and monads.
|
|
PostgreSQL SQL Reference
|
Comprehensive reference for SQL syntax, queries, and extensions.
|