In category theory, the concept of catamorphism (from Greek: [= downwards or according to; μορφ?] = form or shape) denotes the unique [[homomorphism from an initial algebra into some other algebra. The concept has been applied to functional programming as folds.