data Tree a = Leaf {}
| Branch { left :: Tree a
, key :: a
, right :: Tree a }
branches :: Tree a -> Int
branches t = case t of
Leaf {} -> 0
Branch {} ->
branches (left t) + 1 + branches (right t)
Zusammenhang:
| Datentyp | Funktion |
| zwei Konstruktoren | zwei Zweige |
| rekursiv (Tree → Tree) | rekursiv (branches → branches) |