在我的Emacs配置中,我有这样一个字符串:
(setq ibuffer-saved-filter-groups
(quote (("default"
("dired"
(mode . dired-mode))
("System"
(or (name . "\*scratch\*")
(name . "\*Messages\*")))
("SVN"
(name . "^\\*vc-.*\\*$"))))))
Run Code Online (Sandbox Code Playgroud)
变量name和mode未定义但代码被正确评估.当我尝试自己做这样的时候:
(some-var . "some-value")
Run Code Online (Sandbox Code Playgroud)
我收到有关未定义变量的错误some-var.
引用基准时,不评估任何内容.例如:
foo
Run Code Online (Sandbox Code Playgroud)
计算绑定到标识符的值foo,而
'foo
Run Code Online (Sandbox Code Playgroud)
要么
(quote foo)
Run Code Online (Sandbox Code Playgroud)
评估符号foo.
同样,
(+ 1 2 3)
Run Code Online (Sandbox Code Playgroud)
评估为6,而
'(+ 1 2 3)
Run Code Online (Sandbox Code Playgroud)
要么
(quote (+ 1 2 3))
Run Code Online (Sandbox Code Playgroud)
评估到包含四个元素的列表:符号+和数字1,2和3.特别是,+不评估.
同样,您的name和mode,都在引用的基准范围内,不被视为标识符,而是视为符号.他们没有被评估.