Het concept van een catamorfisme is gegrond in de categorietheorie en is toegepast in het functioneel programmeren. Het geeft het unieke homomorfisme aan voor een initiële algebra. De term komt uit het Grieks κατα- (naar beneden) + morfisme, ook uit het Grieks μορφή (vorm). Het duale concept is dat van een anamorfisme.
Catamorfismen in functioneel programmeren
In het functioneel programmeren is een catamorfisme een generalisatie van de folds op lijsten bekend uit het functioneel programmeren als willekeurige abstracte datatypes, die kunnen worden beschreven als initiële algebra's.
Een van de eerste publicaties die de notie van een catamorfisme in de context van programmeren hebben geïntroduceerd was het artikel "Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire", door Erik Meijer et al., dit in de context van de Squiggol programmeertaal.
Het duale concept is een anamorfisme, een generalisatie van de "unfolds".
Zie ook
Externe links
- Erik Meijer, Maarten Fokkinga, and Ross Paterson. Functional Programming with Bananas, Lenses, Envelopes, and Barbed Wire, (Functioneel programmeren met bananen, lenzen, enveloppen en prikkeldraad) [1], bevat aanvullende definities en voorbeelden
- Catamorfismen in Haskell