tests if 'obj' is in the list of 'choices' use: (in obj 'a 'b 'c ...) expands into: (or (eql obj 'a) (eql obj 'b) ...)
(defmacro in (obj &rest choices) "tests if 'obj' is in the list of 'choices' use: (in obj 'a 'b 'c ...) expands into: (or (eql obj 'a) (eql obj 'b) ...)" (with-gensyms (insym) `(let ((,insym ,obj)) (or ,@(loop for c in choices collect `(eql ,insym ,c))))))Source Context