multiple-value-prog1
first-form {form}* ⇒ first-form-results
first-form | a form; evaluated as described below. |
form | a form; evaluated as described below. |
first-form-results | the values resulting from the evaluation of first-form. |
multiple-value-prog1 evaluates first-form and saves all the values produced by that form. It then evaluates each form from left to right, discarding their values.
(setq temp '(1 2 3)) ⇒ (1 2 3)
(multiple-value-prog1
(values-list temp)
(setq temp nil)
(values-list temp)) ⇒ 1, 2, 3