Content deleted Content added
Blaisorblade (talk | contribs) Rewrite the page more correctly, based on the underlying literature |
m Dating maintenance tags: {{Technical}} |
||
Line 1:
{{technical|date=December 2014}}
In [[programming language theory]], the '''[[call-by-push-value]]''' ('''CBPV''') paradigm<ref>{{cite journal|title=Call-by-Push-Value: A Subsuming Paradigm|author=Paul Blain Levy}}</ref>, inspired by [[monad]]s, allows writing semantics for lambda-calculus without writing two variants to deal with the difference between '''call-by-name''' and '''call-by-value'''. To do so, CBPV introduced a CBPV term language that distinguishes computations and values, according to the slogan is ''a value is, a computation does''; this term language has a single evaluation order. However, to evaluate a [[lambda-calculus]] term according to either the call-by-name ('''CBN''') or call-by-value ('''CBV''') [[evaluation strategy]], one can translate the term to CBPV using a call-by-name or call-by-value translation strategy, which give rise to different terms. Evaluating the result of the call-by-value translation corresponds to evaluating the original term with the call-by-value strategy; evaluating the result of the call-by-name translation corresponds instead to evaluating the original term with the call-by-name strategy.
|