Rekursion über Bäume (Schema)

gemeinsame Form dieser Funktionen:

f :: Tree a -> b
f t = case t of
  Leaf {} -> ...
  Branch {} -> 
      ... (f (left t)) (key t) (f (right t))
dieses Schema ist eine Funktion höherer Ordnung:
fold :: ( ... ) -> ( ... ) -> ( Tree a -> b )
fold leaf branch = \ t -> case t of
  Leaf {} -> leaf
  Branch {} -> 
     branch (f (left t)) (key t) (f (right t))
summe = fold 0 ( \ l k r -> l + k + r )



Johannes Waldmann 2011-01-18