push

Das Macro push legt eine S-Expression auf einen Stapel. Es erwartet zwei Argumente. Das zweite Argument wird nicht ausgewertet, es handelt sich um ein Symbol, das während der Auswertung von push an einen neuen Wert gebunden wird. Der neue Wert wird gebildet, indem das erste Argument mit dem alten Wert zu einer Liste geconst (siehe cons) werden.

Das Gegenstück zu push ist pop.

(setq push
  (mlambda args
    (list
      setq
      (second args)
      (list
        cons
        (first args)
        (second args)))))