我的代码是这样的创建列表:的Emacs Lisp:使用报价在本地范围内(例如,功能范围)
(defun test() "Test."
(setq lista '(A))
(push 'B lista)
(nreverse lista))
(message "%s" (test)) ; Output is (A B)
(message "%s" (test)) ; Output is (B A B)
,因为我希望得到的结果是
(A B)
(A B)
如果我似乎很奇怪用(setq lista (list 'A))
替代(setq lista '(A))
,我得到预期的结果。我认为列表创建方法会导致差异,但我不知道细节。
我的emacs的版本是GNU Emacs的24.5.1
你的问题已经有答案了:'quote'不*创建*任何东西,它只是让你指的是硬编码到代码的值。 – Stefan