![[LISPWORKS]](../Graphics/LWSmall.gif)
![[Common Lisp HyperSpec (TM)]](../Graphics/CLHS_Sm.gif) 
 ![[Previous]](../Graphics/Prev.gif)
![[Up]](../Graphics/Up.gif)
![[Next]](../Graphics/Next.gif)
Syntax:
multiple-value-prog1 first-form form* => first-form-results
Arguments and Values:
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.
Description:
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.
Examples:
 (setq temp '(1 2 3)) =>  (1 2 3)
 (multiple-value-prog1
    (values-list temp)
    (setq temp nil)
    (values-list temp)) =>  1, 2, 3
 
Side Effects: None.
Affected By: None.
Exceptional Situations: None.
See Also:
Notes: None.
![[Starting Points]](../Graphics/StartPts.gif)
![[Contents]](../Graphics/Contents.gif)
![[Index]](../Graphics/Index.gif)
![[Symbols]](../Graphics/Symbols.gif)
![[Glossary]](../Graphics/Glossary.gif)
![[Issues]](../Graphics/Issues.gif)