leaves :: Tree a -> Int -- Anzahl der Blätter leaves Leaf = 1 leaves t = leaves (left t) + leaves (right t)
inorder :: Tree a -> [a] -- Schlüssel-Reihenfolge inorder Leaf = [] inorder t = inorder (left t) ++ [key t] ++ inorder (right t)Gemeinsame Struktur (Rekursions-Schema):
tfold f z Leaf = z tfold f z t = f(tfold f z (left t))(key t)(tfold f z (right t))
leaves = tfold (\ l k r -> l + r) 1 inorder = tfold (\ l k r -> l ++ [k] ++ r) []Aufgab: Typ von
tfold
?