Functional Programming

Most programming is a list of commands: do this, then change that. Functional programming throws that away and builds everything out of pure functions — machines that take inputs and return outputs, and never secretly change anything else. That one discipline makes code easier to reason about, to test, and to run safely across many cores, and its ideas have quietly leaked into every modern language.

This branch develops the style properly: purity and immutability, higher-order functions (map/filter/reduce), closures, recursion and folds, algebraic data types with pattern matching, lazy evaluation, and a first look at monads. It deepens the intro in functional programming.