Hi,

I just hacked the following macro:

(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))
             `(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)))))))))

Did anybody see anything similar before? Any suggestions for improvement?


Thanks,
Pascal

-- 
Pascal Costanza, mailto:p...@p-cos.net, http://p-cos.net
Vrije Universiteit Brussel
Software Languages Lab
Pleinlaan 2, B-1050 Brussel, Belgium







_______________________________________________
pro mailing list
pro@common-lisp.net
http://common-lisp.net/cgi-bin/mailman/listinfo/pro

Reply via email to