Skip to content

Higher-Order Abstraction (Functions as Values)

Treating behavior (functions, operations, strategies) as first-class values enables abstraction over patterns of computation, not just patterns of data.

Tension Addressed

Abstraction vs. Concreteness

Recognizable As

Callbacks, strategy pattern, functors, monads, middleware chains, decorators, command pattern

Canonical Sources

Alonzo Church, Lambda Calculus (1930s); John Hughes, "Why Functional Programming Matters" (1989); SICP (1985)

Transfers To

API Design (parameterized behavior), Middleware Architectures, Event Systems, Testing (dependency injection)

This insight separates "what varies" (the passed function) from "what stays the same" (the higher-order structure), enabling powerful reuse patterns.