macros - 显示从 lisp 宏生成的代码

标签 macros lisp

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

举个例子

(defmacro nil! (var)
  (list 'setq var nil))

我希望能够看到扩展的代码

(setq a nil)

最佳答案

正如迭戈所说... MACROEXPAND-1 .

* (macroexpand-1 '(nil! frob))

(SETQ FROB NIL)
T
* 

关于macros - 显示从 lisp 宏生成的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10905857/

相关文章:

c++ - 在宏中加入前 n-1 个参数

macros - 在 Common Lisp 包中导出照应宏

lisp - Common Lisp 中的 Web 开发

lisp - 如何在常见的 lisp 列表中找到最常见的元素?

emacs - 如何将更改应用于 emacs .el 文件

csv - ImageJ宏: saving csv file

c - Windbg 堆栈跟踪显示宏扩展之前或之后的行号

隐藏赋值的 C 宏技巧?

file - 从 Common Lisp 中的文本文件中读取序列

方案:使用回溯查找给定字符列表和单词列表的句子排列