2 ms·
The basic point is to have something akin to lambda-calculus that can equally account for both strict and lazy evaluation strategies, in a way that doesn't undu
by zozbot234 1y ago
The basic point is to have something akin to lambda-calculus that can equally account for both strict and lazy evaluation strategies, in a way that doesn't unduly sacrifice expressiveness for one or the other. (Compare the ML family of languages and Haskell, where strict and lazy evaluation respectively are idiomatic. You can express lazy evaluation in a ML and strict evaluation in Haskell, but only in clunky ways that don't align with the overall logic of the language. CBPV and other comparable formalisms aim to resolve this.)