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