ein Rekursionsmuster anwenden = jeden Konstruktor durch eine passende Funktion ersetzen.
data List a = Nil | Cons a (List a) fold ( nil :: b ) ( cons :: a -> b -> b ) :: List a -> bRekursionsmuster instantiieren = (Konstruktor-)Symbole interpretieren (durch Funktionen) = eine Algebra angeben.
length = fold 0 ( \ _ l -> l + 1 ) reverse = fold [] ( \ x ys -> )