Macros 显示从lisp宏生成的代码

Macros 显示从lisp宏生成的代码,macros,lisp,Macros,Lisp,我对lisp非常陌生,这可能是一个非常愚蠢/明显的问题,但在常见的lisp中,您能显示从宏生成的代码吗 比如说 (defmacro nil! (var) (list 'setq var nil)) 我希望能够看到扩展的代码 (setq a nil) 正如迭戈所说 尝试macroexpand或macroexpand-1。谢谢,我认为它一定很简单。@DeanSmith:在稍微刺激一下你的宏之后:我建议将它重写为(defmarco nil!(var)`(setf,var nil))。SETF比

我对lisp非常陌生,这可能是一个非常愚蠢/明显的问题,但在常见的lisp中,您能显示从宏生成的代码吗

比如说

(defmacro nil! (var)
  (list 'setq var nil))
我希望能够看到扩展的代码

(setq a nil)
正如迭戈所说


尝试
macroexpand
macroexpand-1
。谢谢,我认为它一定很简单。@DeanSmith:在稍微刺激一下你的宏之后:我建议将它重写为
(defmarco nil!(var)`(setf,var nil))
。SETF比SETQ更通用,通常更合适。准语言在宏观学中不那么冗长,更为常见。
* (macroexpand-1 '(nil! frob))

(SETQ FROB NIL)
T
*