考虑这个属性列表:
(defvar *some-variable* (list :foo "fooval" :bar "barval"))
这个简单的调用:
(getf *some-variable* :foo)
产量"fooval"
符合预期。我定义了一个宏,它应该做同样的事情,除了我可以传递任何属性的名称来检索:
(defmacro my-macro (property-name)
`(getf *some-variable* :,property-name))
不幸的是,这样称呼它:
(my-macro 'foo)
结果FOO
。为什么?