(defmacro test (a b c)
`'(,a ,b ,c))
运行(test apple banana cuba)
给(APPLE BANANA CUBA)
预期。
如何使宏产生APPLEBANANACUBA?
我想:
(defmacro test (a b c)
`'(,a,b,c))
但运行(test ant bites chris)
仍返回(ANT BITES CHRIS)
作为三个独立的ARGS列表。
我试过变化,似乎没有工作。像这样:
(defmacro test (a b c)
`(apply #'concatenate 'symbol '(,a ,b ,c)))
很明显,这个错误出来了,因为符号不是一个有效的连接输出类型。
我确定这是我对宏如何工作的一些基本误解,并且有一个简单的方法可以做到这一点。我错过了什么?
@JoshuaTaylor即使其他问题包括信息是这个问题的答案,它嵌入在问题和答案中的许多其他信息中。你可以在这个问题的评论中加入一个链接,指出那里有'更多'的信息,但将这两个问题称为'相同'(这是重复的意思)对任何可能从快速清晰解决方案中受益的人来说都是一种伤害未来。真的很高兴,但请重新考虑。 –