我正在阅读通用的lisp书,并使用三种书写风格来编写宏。但是这些之间有些不同。这些lisp-macro写作风格之间的区别是什么?
(defmacro test_var (var)
(list 'format 't var))
(defmacro test_var2 (var)
`(format t ,var))
(defmacro test_var3 (var)
'(format t)
var)
,我测试这三个宏:
CL-USER> (test_var "ss")
ss
NIL
CL-USER> (test_var2 "ss")
ss
NIL
CL-USER> (test_var3 "ss")
ss
CL-USER>
为什么剂量的第三个 “无” 基本消失?发生了什么??
供参考:下次如果我发现有关宏的一些有趣的事情,我怎么能找到它的工作细节呢?
test_var3应该做什么? –
这是什么书? –
本书中的示例仅显示包含test_var和test_var2的语法。我写test_var3来测试它是否工作。然后我发现这个问题。 – ccQpein