In der Einführung hieß es:
Hier sind zwei Aspekte zu betrachten:
Zum Speichern der Möglichkeiten muss eine LIFO - Struktur ( = last in first out ) , also eine stack - Struktur (Stapel) benutzt werden. In unseren vorher betrachteten Programmbeispielen wurde diese Struktur weitgehend vom System verwaltet. Dabei wird zum Expandieren (=Bestimmen aller möglichen Nachfolger eines Knotens) jeweils die zuletzt gespeicherte Möglichkeit aus dem stack herausgelesen und es werden diese Nachfolger am Anfang des stacks hinzugefügt. Dafür stellt Scheme mit den Standardbefehlen car für den lesenden Zugriff und cons für das Einfügen am Anfang die notwendigen Funktionen bereit. Auch das Bestimmen der restlichen Alternativen wird mit dem Standardbefehl cdr erledigt.
Bei jedem rekursiven Aufruf merkt sich das System nicht nur die Position, von der aus der rekursive Aufruf erfolgte, sondern auch den Zustand der lokalen Variablen zum Zeitpunkt des Aufrufes. Sie werden auf den stack gebracht, was man üblicherweise Englisch als push bezeichnet.
Beim Rücksprung werden diese nun wieder automatisch vom stack geholt (Englisch: pop), um mit ihnen den Zustand beim Aufruf wieder herzustellen. Allein der Programmzähler hat seinen Wert geändert; muss er ja auch, da nun der nächsten Befehl bearbeitet werden muss.
Man kann diese Aufgaben auch selbst erledigen. Dies wird vom Programm Ariadne stack.scm durchgeführt.