pop
Das Macro pop ist das Gegenstück zu push, es entnimmt eine S-Expression von einem Stapel. Das Macro erwartet ein Symbol als Argument, das nicht ausgewertet wird. Der Wert des Symbols muss eine Liste sein. Während der Auswertung von pop wird diese Liste um das erste Element verkürzt. Das erste Element wird zum Rückgabewert des Aufrufs.
(setq pop
(mlambda args
(let
((arg (first args)))
(list
prog1
(list car arg)
(list
setq
arg
(list cdr arg))))))
(setq pop
(mlambda args
(let
((arg (first args)))
(list
prog1
(list car arg)
(list
setq
arg
(list cdr arg))))))