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 1  ( \ fl k fr -> fl         + fr )
inorder' = 
  tfold [] ( \ fl k fr -> fl ++ [k] ++ fr )



Johannes Waldmann 2007-06-21