arXiv · 2212.08594
Call-By-Name Is Just Call-By-Value with Delimited Control
Abstract
Delimited control operator shift0 exhibits versatile capabilities: it can express layered monadic effects, or equivalently, algebraic effects. Little did we know it can express lambda calculus too! We present $ Λ_\$ $, a call-by-value lambda calculus extended with shift0 and control delimiter $ \$ $ with carefully crafted reduction theory, such that the lambda calculus with beta and eta reductions can be isomorphically embedded into $ Λ_\$ $ via a right inverse of a continuation-passing style translation. While call-by-name reductions of lambda calculus can trivially simulate its call-by-value version, we show that addition of shift0 and $ \$ $ is the golden mean of expressive power that suffices to simulate beta and eta reductions while still admitting a simulation back. As a corollary, calculi $ Λμ_v $, $ λ_\$ $, $ Λ_\$ $ and $ λ$ all correspond equationally.
Explore related subjects
Keep this discovery
Explore connections, maps & timelines
Mateusz Pyzik. 2023-02-20. Call-By-Name Is Just Call-By-Value with Delimited Control. https://doi.org/10.46298/entics.10502
Cite the original work for its findings. Save a collection to share your selection of sources.