The
(defmacro cl:multiple-value-list (expr)
(setq cl:*multiple-values* nil)
(let ((result (eval expr)))
(if cl:*multiple-values*
'*rslt*
`(list ,result))))
The
Examples:
(cl:multiple-value-list 1) => (1) ; cl:*multiple-values* => NIL
; *rslt* => [invalid]
(cl:multiple-value-list
(+ 1 1)) => (2) ; cl:*multiple-values* => NIL
; *rslt* => [invalid]
(cl:multiple-value-list
(cl:values 1 2 3)) => (1 2 3) ; cl:*multiple-values* => T
; *rslt* => (1 2 3)