Rekursion über Bäume (Schema)

gemeinsame Form dieser Funktionen:

f :: Tree a -> b
f t = case t of
  Leaf         -> ...
  Branch l k r -> ... (f l) k (f r)
dieses Schema ist eine Funktion höherer Ordnung:
fold :: ( ... ) -> ( ... ) -> ( Tree a -> b )
fold leaf branch = \ t -> case t of
  Leaf -> leaf
  Branch l k r -> 
     branch (fold leaf branch l) k 
            (fold leaf branch r)
summe = fold Z ( \ l k r -> plus l (plus k r ) )



Johannes Waldmann 2013-02-01