(defmacro acond2 (&rest clauses) (if (null clauses) nil (with-unique-names (val foundp) (destructuring-bind ((test &rest progn) &rest others) clauses `(multiple-value-bind (,val ,foundp) ,test (if (or ,val ,foundp) (let ((it ,val)) (declare (ignorable it)) ,@progn) (acond2 ,@others)))))))Source Context