From: Pascal Costanza <[email protected]>
Date: Fri, 26 Nov 2010 14:36:57 +0100
(defmacro multiple-value-case (&body clauses)
(when clauses
(destructuring-bind (first &rest rest) clauses
(cond ((member (first first) '(t otherwise))
(when clauses (warn "Dead code: ~S." clauses))
Surely:
(when rest (warn "Dead code: ~S." rest))
-n
`(progn ,@(rest first)))
(t (destructuring-bind ((&rest lambda-list) expression (guard)
&rest body) first
`(multiple-value-bind ,lambda-list ,expression
(if ,guard (progn ,@body)
(multiple-value-case ,@rest)))))))))
_______________________________________________
pro mailing list
[email protected]
http://common-lisp.net/cgi-bin/mailman/listinfo/pro