Baum (Haskell)

Aus Infostudium Wiki

Wechseln zu: Navigation, Suche

Man kann einen polymorphen Baum auf zwei Arten definieren;

data Tree a = Leaf a | Node a (Tree a) (Tree a)

oder

data Tree a = Empty | Node a (Tree a) (Tree a)

Bei der ersten Option ist der Baum niemals leer. Da man meist auch leere Bäume zulassen möchte ist der zweite stets vorzuziehen. Dieser hat auch den Vorteil dass man die Verarbeitung eines Datums immer gleich behandeln kann. Für die erste Variante müsste man an vielen Stellen doppelten Kode schreiben.

Konkrete Typbindung

Möchte man daraus einen konkreten Baum ableiten, kann man diesen explizit als Typ definieren.

type IntTree = Tree Int
Persönliche Werkzeuge