嵌入式`(引用...)`
Embedded `(quote ...)`
我安装了一些主题并将以下内容放入我的 $HOME/.emacs
:
(custom-set-variables ; Your init file should only contain one of these
'(custom-safe-themes (quote ("ea489f6710a3da0738e7dbdfc124df06a4e3ae82f191ce66c2af3e0a15e99b90"
"a8245b7cc985a0610d71f9852e9f2767ad1b852c2bdea6f4aadc12cce9c4d6d0"
"8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4"
default)))
)
为什么引号中有引号?这不是多余的吗?
Why does it have a quote inside of a quote? Isn't that redundant?
这不是多余的,因为它给出了不同的值; Lisp 中的一般情况是 (quote foo) => foo
而 (quote (quote foo)) => (quote foo)
。所以引号和双引号是不能互换的:一个是正确的,另一个是不正确的。
在这种特殊情况下,有多个级别的评估,因此需要多层引用。外部引号防止在函数调用之前对参数进行正常评估,以便 custom-set-variables
接收列表 (custom-safe-themes (quote ("ea489..." ... default))))
.
这最终会传递给 custom-theme-set-variables
,它会在列表 (quote ("ea489..." ... default))
.
的第二个元素上调用 eval
I tried removing the (quote
and the corresponding paren and it still works.
似乎 可以工作,但这只是因为自定义设置函数捕获了错误。如果您选中 *Messages*
,您将看到 Error setting custom-safe-themes: (invalid-function ea489f6710a3da0738e7dbdfc124df06a4e3ae82f191ce66c2af3e0a15e99b90)
。
我安装了一些主题并将以下内容放入我的 $HOME/.emacs
:
(custom-set-variables ; Your init file should only contain one of these
'(custom-safe-themes (quote ("ea489f6710a3da0738e7dbdfc124df06a4e3ae82f191ce66c2af3e0a15e99b90"
"a8245b7cc985a0610d71f9852e9f2767ad1b852c2bdea6f4aadc12cce9c4d6d0"
"8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4"
default)))
)
为什么引号中有引号?这不是多余的吗?
Why does it have a quote inside of a quote? Isn't that redundant?
这不是多余的,因为它给出了不同的值; Lisp 中的一般情况是 (quote foo) => foo
而 (quote (quote foo)) => (quote foo)
。所以引号和双引号是不能互换的:一个是正确的,另一个是不正确的。
在这种特殊情况下,有多个级别的评估,因此需要多层引用。外部引号防止在函数调用之前对参数进行正常评估,以便 custom-set-variables
接收列表 (custom-safe-themes (quote ("ea489..." ... default))))
.
这最终会传递给 custom-theme-set-variables
,它会在列表 (quote ("ea489..." ... default))
.
eval
I tried removing the
(quote
and the corresponding paren and it still works.
似乎 可以工作,但这只是因为自定义设置函数捕获了错误。如果您选中 *Messages*
,您将看到 Error setting custom-safe-themes: (invalid-function ea489f6710a3da0738e7dbdfc124df06a4e3ae82f191ce66c2af3e0a15e99b90)
。