## Functional programming with apomorphisms (corecursion (1998)

Venue: | Proceedings of the Estonian Academy of Sciences: Physics, Mathematics |

Citations: | 10 - 1 self |

### BibTeX

@INPROCEEDINGS{Vene98functionalprogramming,

author = {Varmo Vene and Tarmo Uustalub},

title = {Functional programming with apomorphisms (corecursion},

booktitle = {Proceedings of the Estonian Academy of Sciences: Physics, Mathematics},

year = {1998},

pages = {147--161}

}

### Years of Citing Articles

### OpenURL

### Abstract

Abstract. In the mainstream categorical approach to typed (total) functional programming, functions with inductive source types defined by primitive recursion are called paramorphisms; the utility of primitive recursion as a scheme for defining functions in programming is well known. We draw attention to the dual notion of apomorphisms — with coinductive target types defined by primitive corecursion and show on examples that primitive corecursion is useful in programming. Key words: typed (total) functional programming, categorical program calculation, (co)datatypes, (co)recursion forms. 1.

### Citations

301 | Functional programming with bananas, lenses, envelopes and barbed wire
- Meijer, Fokkinga, et al.
- 1991
(Show Context)
Citation Context ...ummarized in the following diagram: C GC 11 out 0 jGf vG -GvG. Morphisms of the form[ ]c are called G-anamorphisms (derived from the Greek preposition cwa meaning “upwards”; the name is due to Meijer =-=[9]-=-), and the 151construction [•] G is a coiterator. Like catamorphisms, anamorphisms have various properties including the following cancellation, reflection, and fusion laws: OUtco[co]G=G[cO]GocO ana-... |

228 | A tutorial on (co)algebras and (co)induction
- Jacobs, Rutten
- 1997
(Show Context)
Citation Context ... prove properties about programs. Codatatypes and related notions such as coinduction and bisimulation are widely used in the analysis of processes specifiable by transition systems or state machines =-=[11]-=-. If processes are understood as functions from states to behaviours, sequential composition of two processes becomes a natural example of a function elegantly definable as an apomorphism. This leads ... |

216 |
An introduction to the theory of lists
- Bird
- 1987
(Show Context)
Citation Context ...requently superior to catamorphisms, i.e. functions defined by iteration. The tradition of categorical functional programming that we follow in this paper started off with the Bird—Meertens formalism =-=[2]-=-, which is a theory of the datatypes of lists. Malcolm [3] and Fokkinga [4] generalized the approach for arbitrary datatypes and codatatypes, inspired by the work of Hagino [5]. Geuvers [61 presents a... |

105 |
Data structures and program transformation
- Malcolm
- 1990
(Show Context)
Citation Context ...d by iteration. The tradition of categorical functional programming that we follow in this paper started off with the Bird—Meertens formalism [2], which is a theory of the datatypes of lists. Malcolm =-=[3]-=- and Fokkinga [4] generalized the approach for arbitrary datatypes and codatatypes, inspired by the work of Hagino [5]. Geuvers [61 presents a thorough theoretical analysis of primitive recursion vers... |

97 |
and Order in Algorithmics
- Law
- 1992
(Show Context)
Citation Context ...he tradition of categorical functional programming that we follow in this paper started off with the Bird—Meertens formalism [2], which is a theory of the datatypes of lists. Malcolm [3] and Fokkinga =-=[4]-=- generalized the approach for arbitrary datatypes and codatatypes, inspired by the work of Hagino [5]. Geuvers [61 presents a thorough theoretical analysis of primitive recursion versus iteration and ... |

67 | A Categorical Programming Language
- Hagino
- 1987
(Show Context)
Citation Context ...Bird—Meertens formalism [2], which is a theory of the datatypes of lists. Malcolm [3] and Fokkinga [4] generalized the approach for arbitrary datatypes and codatatypes, inspired by the work of Hagino =-=[5]-=-. Geuvers [61 presents a thorough theoretical analysis of primitive recursion versus iteration and demonstrates that this readily dualizes into an analysis of primitive corecursion versus coiteration.... |

54 | A fixpoint theorem for complete categories - Lambek - 1968 |

51 | Inductive and Coinductive types with Iteration and Recursion - Geuvers - 1992 |

16 | Pointed Types
- Inductive
- 1996
(Show Context)
Citation Context ...n define Ackennann’s function as a (higher order) catamorphism, so the expressive power of the “language of catamorphisms” is bigger than the class of primitively recursive functions. In fact, Howard =-=[10]-=- has shown that the functions expressible in simply typed A-calculus extended with inductive and coinductive types are precisely those provably total in the logic ID< (the first-order arithmetic augme... |

10 | A browsable format for proof presentation
- Grundy
- 1996
(Show Context)
Citation Context ...sefulness of this scheme on several examples. Section 4 includes possible directions for further work and conclusions. Proofs in this paper are carried out in the structured calculational proof style =-=[7]-=-. 2. (CO)DATATYPES AND (CO)ITERATION 2.1. Preliminaries Throughout the paper C is the default category, in which we shall assume the existence of finite products (x, 1) and coproducts (+, 0), as well ... |

6 | A cube of proof systems for the intuitionistic predicate ; -logic
- Uustalu, Vene
- 1996
(Show Context)
Citation Context ...s leads us to believe that apomorphisms may turn out a viable construction in the modelling of processes. Checking out this conjecture is one possible direction for continuing the work reported here. =-=[12]-=- we studied programming with (co)inductive types in the setting of intuitionistic natural deduction. Besides simple (co)iteration and primitive (co)recursion, we also considered course-of-value (co)it... |