Classical (co)recursion: Mechanics

From MaRDI portal
Publication:6132720

DOI10.1017/S0956796822000168arXiv2103.08521OpenAlexW3152464979MaRDI QIDQ6132720FDOQ6132720


Authors: Paul Downen, Zena M. Ariola Edit this on Wikidata


Publication date: 14 July 2023

Published in: Journal of Functional Programming (Search for Journal in Brave)

Abstract: Primitive recursion is a mature, well-understood topic in the theory and practice of programming. Yet its dual, primitive corecursion, is underappreciated and still seen as exotic. We aim to put them both on equal footing by giving a foundation for primitive corecursion based on computation, giving a terminating calculus analogous to the original computational foundation of recursion. We show how the implementation details in an abstract machine strengthens their connection, syntactically deriving corecursion from recursion via logical duality. We also observe the impact of evaluation strategy on the computational complexity of primitive (co)recursive combinators: call-by-name allows for more efficient recursion, but call-by-value allows for more efficient corecursion.


Full work available at URL: https://arxiv.org/abs/2103.08521






Cites Work






This page was built for publication: Classical (co)recursion: Mechanics

Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q6132720)