Functional Programming Concepts
Language-agnostic functional programming taught mainly in TypeScript: pure functions, immutability, composition, recursion and laziness, algebraic data types, Option and Result, functors and monads, and how to apply it all in real projects.
What you'll learn
- Explain pure functions, referential transparency and why isolating side effects makes code easier to test and reason about.
- Work with immutable data using copies, structural sharing and readonly types.
- Use higher-order functions, closures, composition, currying and map/filter/reduce to build programs from small parts.
- Apply recursion, lazy evaluation with generators, and memoisation with an eye on their costs.
- Model data with algebraic data types, exhaustive pattern matching, Option and Result instead of null and exceptions.
- Recognise functors and monads in everyday code and structure applications as a functional core with an imperative shell.
Syllabus
Foundations of Functional Programming
- What Functional Programming Is
- Pure Functions and Referential Transparency
- Side Effects and Why Isolating Them Helps