In der Programmiersprache LISP
können die Listen,
die dort als grundlegende Datenstruktur verwendet werden,
als Elemente neben Atomen auch selbst Listen enthalten.
Solche rekursive Listen lassen sich in Modula 2 nachbilden:
wir erweitern unseren früher
verwendeten Typ knoten zu einem Verbund mit
Varianten und einem Schalterfeld ka:
TYPE knoten = RECORD nach: liste;
CASE ka: (A, L) OF
A: wert: atom; |
L: vws: liste;
END;
END;
Damit kann die rekursive Liste ( a ( b c ) d ) jetzt als Geflecht
dargestellt werden:
Die rekursive Liste (()) ist nicht etwa leer, sondern enthält als
einziges Element eine leere Liste () !