Nyquist / XLISP 2.0  - 
Contents |
Tutorials |
Examples |
Reference
cl:debug:mv
The cl:debug:mv function can be used to debug
multiple value expressions:
- (cl:debug:mv expr
- expr - a Lisp expression, returning an arbitrary number of values
 returns - the normal Lisp return value from evaluating expr
 
(defun cl:debug:mv (expr)
  (setq cl:*multiple-values* nil)
  (let ((result (eval expr)))
    (format t ";; cl:*multiple-values* => ~a~%" cl:*multiple-values*)
    (format t ";; *rslt* => ~a~a~%" *rslt*
              (if cl:*multiple-values* "" " [invalid]"))
    result))
The cl:debug:mv function first sets the
cl:*multiple-values*
variable to NIL, then it
evaluates the expression. After evaluation it prints the values of the
cl:*multiple-values*
and *rslt* variables and
returns the normal Lisp return value from the evaluation.
Example:
> (cl:debug:mv '(cl:values 1 2 3))
;; cl:*multiple-values* => T
;; *rslt* => (1 2 3)
1
> (cl:debug:mv 1)
;; cl:*multiple-values* => NIL
;; *rslt* => (1 2 3) [invalid]
1
  Back to top
Nyquist / XLISP 2.0  - 
Contents |
Tutorials |
Examples |
Reference