我现在有以下代码让我感到困惑,我希望有人能告诉我区别以及如何解决这个问题。
(defmacro tm(a)
`(concat ,(symbol-name a)))
(defun tf(a)
(list (quote concat) (symbol-name a)))
我只是认为它们应该是相同的效果,但实际上它们似乎不是。
我尝试以下电话:
CL-USER> (tf 'foo)
(CONCAT "FOO")
CL-USER> (tm 'foo)
value 'FOO is not of the expected type SYMBOL.
[Condition of type TYPE-ERROR]
所以有什么问题?
我想要的是:
(tm 'foo) ==> (CONCAT "FOO")