我不太清楚如何恰当地表达这个问题不过,事情是这样的。
假设我们有一些宏,它们的工作方式与Common Lisp中的defun
类似,并且构建在这些宏之上我用其中一个宏做了一个声明,它编译得很好。
然而,当我在REPL打电话时,结果我得到了NIL
这似乎令人费解,所以我在REPL评估了最初的声明评估结果为NIL
。
我需要调试一下我的问题是我应该看看读者的水平还是别的什么地方也就是说,如果没有抛出错误,我可以从何处着手解决这个问题?
最佳答案
使用MACROEXPAND
函数查看宏调用扩展到的内容。
(pprint (macroexpand '(my-defun ...)))