MetaCart Sign in to MyCiteSeerX

Include Citations | Advanced Search | Help

Disambiguated Search | Include Citations | Advanced Search | Help

Primitive (Co)Recursion and Course-of-Value (Co)Iteration, Categorically (1999) [9 citations — 3 self]

by Tarmo Uustalu ,  Varmo Vene
Informatica
Add To MetaCart

Abstract:

In the mainstream categorical approach to typed (total) functional programming, datatypes are modelled as initial algebras and codatatypes as terminal coalgebras. The basic function definition schemes of iteration and coiteration are modelled by constructions known as catamorphisms and anamorphisms. Primitive recursion has been captured by a construction called paramorphisms. We draw attention to the dual construction of apomorphisms, and show on examples that primitive corecursion is a useful function definition scheme. We also put forward and study two novel constructions, viz., histomorphisms and futumorphisms, that capture the powerful schemes of course-of-value iteration and its dual, respectively, and argue that even these are helpful. Key words: typed (total) functional programming, category theory, program calculation, (co)datatypes, forms of (co)recursion 1. Introduction This paper is about a well-known categorical approach to typed (total) functional programming popular in t...

Citations

195 An introduction to the theory of lists – Bird - 1987
194 A tutorial on (co)algebras and (co)induction – Jacobs, Rutten - 1997
100 Data structures and program transformation – Malcolm - 1990
89 and Order in Algorithmics – Law - 1992
51 A Categorical Programming Language – Hagino - 1987
46 Inductive and coinductive types with iteration and recursion – Geuvers - 1998
40 A fixpoint theorem for complete categories – Lambek - 1968
35 Elementary strong functional programming – Turner - 1995
11 A browsable format for proof presentation – Grundy - 1996
8 Functional programming with apomorphisms (corecursion – Vene, Uustalu - 1998
5 Paramorphisms – Meertens - 1992
5 A cube of proof systems for the intuitionistic predicate ; -logic – Uustalu, Vene - 1997
4 Program construction and generation based on recursive types – Vos - 1995
1 Typechecking the Charity term logic. Unpublished notes – Vesely - 1997
1 Uustalu received the MSc degree in system and computer sciences from the Tallinn Technical University in 1992 and the PhD degree in computer science from the Royal Institute of Technology – Received - 1998