summaryrefslogtreecommitdiff
path: root/control-flow.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'control-flow.lisp')
-rw-r--r--control-flow.lisp8
1 files changed, 6 insertions, 2 deletions
diff --git a/control-flow.lisp b/control-flow.lisp
index bcd8e23..f429a1a 100644
--- a/control-flow.lisp
+++ b/control-flow.lisp
@@ -215,8 +215,12 @@
,@body))
-(defmacro multiple-value-list (expression)
- `(multiple-value-call #'list ,expression))
+(defmacro multiple-value-call (function-form &rest forms)
+ (let ((args `(mapcan 'identity (list ,@(mapcar (lambda (form) `(multiple-value-list ,form)))))))
+ `(apply ,function-form ,args)))
+
+;;(defmacro multiple-value-list (expression)
+;; `(multiple-value-call #'list ,expression))
(defmacro multiple-value-bind ((&rest vars) expression &body forms)
`(destructuring-bind ,vars (multiple-value-list ,expression)