把一个变量添加到 List 中时,如果添加它的值?

elisp

#1
(setq hello "helloworld")
(setq header '(("Hello" . "World") ("Hello2" . "world2") ("hello3" . hello)))

我要如何才能让 header 的值是

(("Hello" . "World") ("Hello2" . "world2") ("hello3" . "helloworld))

而不是

(("Hello" . "World") ("Hello2" . "world2") ("hello3" . hello))

#2

用 backquote 代替 quote ,并在 list 中任意要 eval 的 atom 前面加个 comma。 常用语法糖。


具体用法参考已有主题。


#3

这里有个类似的问题:

http://emacs.stackexchange.com/q/7481/3889

你可以 Backquote 选择需要执行一部分,或者用函数(cons/list)选择不需要执行的一部分。

'((emacs-version . emacs-version))
     => ((emacs-version . emacs-version))

`((emacs-version . ,emacs-version))
     => ((emacs-version . "25.1.1"))

(list (cons 'emacs-version emacs-version))
     => ((emacs-version . "25.1.1"))

#4

(setq header '((“Hello” . “World”) (“Hello2” . “world2”) (“hello3” . ,hello)))


#5

非常感谢非常感谢:+1:


#6

这样子并不行。还要在前面把单引号改为反单引号才行。不过也谢谢你。


#7

嗯嗯。学习了。谢谢哈。