2.9.1. progn und prog1

Progn ist nicht eigentlich eine Kontrollstruktur, sondern kennzeichnet einen Block von Ausdrücken, die sequentiell abgearbeitet werden. Der Wert des letzten Ausdrucks ist der Wert der gesamten progn Form.

Prog1 verhält sich wie Progn, jedoch evaluiert die Form zum Wert des ersten Ausdrucks.

;;; Unterschied zwischen progn und prog1:

(let ((i 5))
  (progn
    i
    (incf i)))

;;; -> 6

(let ((i 5))
  (prog1
      i
    (incf i)))

;;; -> 5

results matching ""

    No results matching ""