(defmacro say (&rest x) (mapcar (lambda (o) (typecase o (string (print o)) (sequence (if t `(,(car o) ,@(cdr o))) (print o)) (t (print o)))) x) t) (say "Good morning" (user 10)) "Good morning" (USER 10) T