Live briefing
Everything about Catamorphism
Homomorphism from an initial algebra into another algebra
In functional programming, the concept of catamorphism denotes the unique homomorphism from an initial algebra into some other algebra. Wikipedia →
đź§ Start here: a 6-step reading path
- Read the overview: CatamorphismA 5-minute orientation
- Pick up a classic book: The role of parallel catamorphic systems in the structure of Zola's "Rougon-Macquart"The most-reprinted book on the subject
- Read the landmark paper: Verifying Catamorphism-Based Contracts using Constrained Horn ClausesCited 10 times
- Go sideways: CorecursionA closely related topic
- Go sideways: Map (higher-order function)A closely related topic
đź“– Definitions
Noun A generalization of the folds on lists known from functional programming to arbitrary abstract data types that can be described as initial algebras.
🗂️ The subject at a glance
🏆 Landmark papers (most cited)
📚 Books worth reading
The role of parallel catamorphic systems in the structure of Zola's "Rougon-Macquart"Gabrielle Maryse Rochecouste · 1988
Ranked by number of editions on Open Library, a rough measure of how lasting a book is.
đź”— Related topics
- Corecursion In computer science, corecursion is a type of operation that is dual to (structural) recursion. Whereas recursion consumes a data structure by first handling…
- Map (higher-order function) In many programming languages, map is a higher-order function that applies a given function to each element of a collection, e.g. a list or set, returning…
- Anamorphism In computer programming, an anamorphism is a function that generates a sequence by repeated application of the function to its previous result. You begin…
- Initial algebra In mathematics, an initial algebra is an initial object in the category of F-algebras for a given endofunctor F. This initiality provides a general framework…
- F-algebra In mathematics, specifically in category theory, F-algebras generalize the notion of algebraic structure. Rewriting the algebraic laws in terms of morphisms…
- Applicative functor In functional programming, an applicative functor, or an applicative for short, is an intermediate structure between functors and monads. Applicative functors…
- Church encoding In mathematics, Church encoding is a method of representing various types of data in the lambda calculus. In the untyped lambda calculus the only primitive…
- Free object In mathematics, the idea of a free object is one of the basic concepts of abstract algebra. Informally, a free object over a set A can be thought of as…