(defmacro caso (exp &rest clausulas) `(let ((temp ,exp)) (cond ,@(mapcar #'(lambda (clausula) `((eql temp ,(car clausula)) ,@(cdr clausula))) clausulas))))
Esta forma especial já existe em Lisp e denomina-se case.