fold anwenden:
jeden Konstruktor d. Funktion ersetzen
data List a = Nil | Cons a (List a)
Nil :: List a
Cons :: a -> List a -> List a
fold :: b -> (a -> b -> b) -> List a -> b
fold nil cons l = case l of
Nil -> nil
Cons x xs -> cons x (fold nil cons xs)
length = fold 0 ( \ x y -> 1 + y )