Macros 如何引用列表中逗号后的所有项目

Macros 如何引用列表中逗号后的所有项目,macros,common-lisp,quote,Macros,Common Lisp,Quote,我想把(foo a b c d e…扩展到==>(bar'a'b'c'd'e… 到目前为止,我只得到以下解决方案: (defmacro foo (a1 &rest a2) `(bar ',a1 '(,@a2))) 但结果是: (foo a b c d)==>(bar'a'(b c d)) 这不是我想要的 有人知道吗?“whatever是(引用whatever)的缩写。如果您有一个符号列表,如a、B、C、D等,并且您想要一个包含结构(条(引号a)(引号B)(引号C))的列表,您可以执

我想把
(foo a b c d e…
扩展到==>
(bar'a'b'c'd'e…

到目前为止,我只得到以下解决方案:

(defmacro foo (a1 &rest a2)
  `(bar ',a1 '(,@a2)))
但结果是:

(foo a b c d)
==>
(bar'a'(b c d))

这不是我想要的


有人知道吗?

“whatever
(引用whatever)
的缩写。如果您有一个符号列表,如a、B、C、D等,并且您想要一个包含结构
(条(引号a)(引号B)(引号C)
)的列表,您可以执行以下操作:

`(bar ,@(mapcar (lambda (symbol) (list 'quote symbol)) symbols))