Emacs 嵌入的`(引号…)`

Emacs 嵌入的`(引号…)`,emacs,elisp,Emacs,Elisp,我安装了一些主题,并将以下内容放入我的$HOME/.emacs: (custom-set-variables ; Your init file should only contain one of these '(custom-safe-themes (quote ("ea489f6710a3da0738e7dbdfc124df06a4e3ae82f191ce66c2af3e0a15e99b90" "a8245b7cc985a0610

我安装了一些主题,并将以下内容放入我的
$HOME/.emacs

(custom-set-variables ; Your init file should only contain one of these
 '(custom-safe-themes (quote ("ea489f6710a3da0738e7dbdfc124df06a4e3ae82f191ce66c2af3e0a15e99b90"
                              "a8245b7cc985a0610d71f9852e9f2767ad1b852c2bdea6f4aadc12cce9c4d6d0"
                              "8aebf25556399b58091e533e455dd50a6a9cba958cc4ebb0aab175863c25b9a4"
                              default)))
 )
为什么在报价中有一个报价?这不是多余的吗

为什么在报价中有一个报价?这不是多余的吗

它不是多余的,因为它给出了不同的值;Lisp中的一般情况是
(quote-foo)=>foo
,而
(quote-foo))=>(quote-foo)
。所以引用和重复引用是不能互换的:一个是正确的,而另一个不是

在这种特殊情况下,有多个级别的评估,因此需要多层次的引用。外部引号防止在函数调用之前对参数进行正常求值,以便
自定义设置变量
接收列表
(自定义安全主题(引号(“ea489…”默认值))

这最终会传递给
自定义主题集变量
,该变量在列表的第二个元素
(引号(“ea489…”默认值))上调用
eval

我试着删除
(quote
和相应的paren,但仍然有效

这似乎可行,但这只是因为自定义设置函数捕捉到了错误。如果您选中
*消息*
,您将看到
设置自定义安全主题时出错:(无效函数ea489f6710a3da0738e7dbdfc124df06a4e3ae82f191ce66c2af3e0a15e99b90)

为什么在报价中有一个报价?这不是多余的吗

它不是多余的,因为它给出了不同的值;Lisp中的一般情况是
(quote foo)=>foo
,而
(quote(quote foo))=>(quote foo)
。因此引号和双引号不能互换:一个是正确的,另一个不是

在这种特殊情况下,有多个级别的求值,因此需要多个层次的引号。外部引号防止在函数调用之前对参数进行正常求值,以便
自定义集变量
接收列表
(自定义安全主题(引号(“ea489…”默认值))

这最终会传递给
自定义主题集变量
,该变量在列表的第二个元素
(引号(“ea489…”默认值))上调用
eval

我试着删除
(quote
和相应的paren,但仍然有效


这似乎可行,但这只是因为自定义设置函数捕捉到了错误。如果您选中
*消息*
,您将看到
设置自定义安全主题时出错:(无效函数ea489f6710a3da0738e7dbdfc124df06a4e3ae82f191ce66c2af3e0a15e99b90)

因为它计算值,并希望在发生这种情况时按字面意思处理。@Barmar我试图删除
(引用
和相应的参数,它仍然有效。我不知道Emacs.stackexchange.com可能是一个更好的问这个问题的地方。它不是关于一般的编程,而是关于Emacs如何处理自定义设置。因为它计算值,并希望在发生这种情况时按字面意思处理。@Barmar我尝试删除它
(quote
和相应的参数仍然有效。我不知道Emacs.stackexchange.com可能是一个更好的地方问这个问题。这不是一般的编程,而是关于Emacs如何处理自定义设置。编写
”(“ea489…
(quote)(“ea489…
?是的,
'foo
始终与
(quote foo)
相同。编写
(“ea489…
的工作原理相同(quote(“ea489…
”是的,
'foo
始终与
(quote foo)
相同。