Definition
Plain language
A style of coding that cleanly separates describing what a computation is from actually running it and changing things in the world.
As stated in the literature
A programming paradigm emphasizing pure functions and the separation of computation-as-data from effects; its discipline of treating programs as values enables replay, branching, and interception.
Why it matters: Separating describing a computation from running it makes it possible to rewind, branch, and intercept what a program does, which is powerful for supervising agents.
For example, instead of immediately changing a file, the code first describes the change as a piece of data, so you can inspect, replay, or undo it later.
Heard on the show
“And their answer is borrowed from functional programming.”Episode 096 — How Treating an AI Agent's Execution Like Git Recovers a Coordination Penalty