Emacs dolist将参数绑定到符号

Emacs dolist将参数绑定到符号,emacs,lisp,elisp,Emacs,Lisp,Elisp,在此代码中,dolist将x绑定到符号“foo”和“bar” (dolist (x '(foo bar)) (print (symbolp x) t)) 如果我想使用foo和bar的值,这是一个问题,例如: (dolist (x '(foo bar)) (print x t)) 如何绕过它?x绑定到符号foo和bar,因为'(foo-bar)是包含符号foo和bar的列表。如果您想要一个包含变量foo和bar的值的列表,可以使用(list foo bar)在编译时是否知道foo和ba

在此代码中,dolist将x绑定到符号“foo”和“bar”

(dolist (x '(foo bar))
  (print (symbolp x) t))
如果我想使用foo和bar的值,这是一个问题,例如:

(dolist (x '(foo bar))
  (print x t))

如何绕过它?

x
绑定到符号
foo
bar
,因为
'(foo-bar)
是包含符号
foo
bar
的列表。如果您想要一个包含变量
foo
bar
的值的列表,可以使用
(list foo bar)

在编译时是否知道
foo
bar
的值与
dolist
完全无关,因为
list
参数直到运行时才会计算。当然,您可以在不同的地方编写一个中断的宏。