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.
Related Concepts¶
- Abstraction - Software Architecture