(defmacro defsmac (name params expr) `(defmacro ,name ,params (sublis (mapcar 'cons ',params (list ,@params)) ',expr))) (defmacro defmac (name params expr) `(defmacro ,name ,params (list '(lambda ,params ,expr) ,@params)))
(defmacro defsmac (name params &rest expr) `(defmacro ,name ,params `,(cons 'progn (sublis (mapcar 'cons ',params (list ,@params)) ', expr))))