Muster als Funktionen höherer Ordnung

tfold :: b 
      -> ( b -> a -> b -> b ) 
      -> Tree a 
      -> b
tfold c h t = case t of
    Leaf -> c
    Node { left = l,  key = k, right = r } 
        -> h (tfold c h l) k (tfold c h r)
Dann ist
leaves'  = 
  tfold ( \ fl k fr -> fl         + fr )  1
inorder' = 
  tfold ( \ fl k fr -> fl ++ [k] ++ fr ) []



Johannes Waldmann 2005-06-08