Apomorphism
In formal methods of computer science, an apomorphism (from ἀπό — Greek for "apart") is the categorical dual of a paramorphism and an extension of the concept of anamorphism (coinduction). Whereas a paramorphism models primitive recursion over an inductive data type, an apomorphism models primitive corecursion over a coinductive data type.
Origins
The term "apomorphism" was introduced in Functional Programming with Apomorphisms (Corecursion).{{citation|
last=Vene|
first=Varmo|
first2=Tarmo|
last2=Uustalu|
title=Functional Programming with Apomorphisms (Corecursion)|
journal=Proceedings of the Estonian Academy of Sciences: Physics, Mathematics|
volume=47|
pages=147–161|
year=1998|
url=http://citeseer.ist.psu.edu/vene98functional.html|
issue=3}}
See also
- Morphism
- Morphisms of F-algebras
- From an initial algebra to an algebra: Catamorphism
- From a coalgebra to a final coalgebra: Anamorphism
- An anamorphism followed by an catamorphism: Hylomorphism
- Extension of the idea of catamorphisms: Paramorphism