Exercises
A path from imperative/JS-style programming to functional thinking. Start with JavaScript-based exercises, build through abstract foundations, then move into Elixir and deeper theory. Work top-to-bottom on your first pass.
Refactoring
Rewrite imperative JS/TS loops and mutations as map, filter, and reduce. Start here.
Tracing
Predict how a JavaScript expression evaluates step by step. Builds the substitution model.
Substitutions
Bind variables and track how expressions reduce by replacing equals with equals.
Functions
Apply and compose functions; understand input-output mappings as data.
Logic
Evaluate propositional logic expressions — boolean reasoning you already use in TS.
Memory Cards
Anki-style graded recall for the concepts above.
Menu-pick
Multiple-choice concept checks.
Swipe
Quick true/false recognition drills.
Match pairs
Match terms to their definitions or equivalents.
Bucket Sort
Sort items into the right categories.
Parson Puzzles
Drag-and-drop code ordering.
Algebraic Laws
Write small Elixir functions and verify they satisfy monoid laws — your first real Elixir.
Algorithms
Classic problems in Elixir (and other languages). Apply what you know.
Proofs
Structured proofs and quantifiers over functions and logic.
Induction
See the recursive call as the inductive hypothesis — the keystone of FP.
Lambda Calculus
Functions as the only primitive; capture-avoiding substitution. The mathematical end.
Articles
Long-form write-ups connecting the exercises above — no account required to read.