Why Functional Programming Matters.¶
Hughes, J. (1989). Why Functional Programming Matters. The Computer Journal, 32(2), 98-107.
Cited by¶
3 citations across 3 artifacts.
Each citation links to the sentence it supports in the citing article.
Primes¶
- Lazy Evaluation
- The eager trade-off is exact and visible — eager evaluation of an infinite list would not terminate at all, so here laziness is not an optimisation but an enabling condition
This sourceArgues that lazy evaluation is an enabling (not merely optimizing) condition — it makes infinite data structures and demand-driven generate-and-select composition tractable.
- The eager trade-off is exact and visible — eager evaluation of an infinite list would not terminate at all, so here laziness is not an optimisation but an enabling condition
- Postponement
- The separable decision and commitment is the distinction between constructing an expression and evaluating it: in a lazy language, writing
let xs = map expensive [1..1000000]decides whatxsis without committing to compute any element.This sourceArgues that lazy evaluation defers computation until demand arrives, enabling modular separation of generation from selection.
- The separable decision and commitment is the distinction between constructing an expression and evaluating it: in a lazy language, writing
- Pull Flow
- Software — lazy evaluation, on-demand serverless compute, and pull-based stream subscription versus eager evaluation, scheduled batch jobs, and prefetching.
This sourceArgues that lazy (demand-driven) evaluation produces output only when a consumer demands it — the software analogue of consumer-pull activation, versus eager (producer-paced) evaluation.
- Software — lazy evaluation, on-demand serverless compute, and pull-based stream subscription versus eager evaluation, scheduled batch jobs, and prefetching.
Verification¶
This reference passed the adversarial substantiation pipeline: it was checked to exist and to support the claim it is attached to. See how references were verified.
Registry ID ref:ac3fc54306f1 · see in the full table