(setq hello "helloworld")
(setq header '(("Hello" . "World") ("Hello2" . "world2") ("hello3" . hello)))
我要如何才能让 header 的值是
(("Hello" . "World") ("Hello2" . "world2") ("hello3" . "helloworld))
而不是
(("Hello" . "World") ("Hello2" . "world2") ("hello3" . hello))
用 backquote 代替 quote ,并在 list 中任意要 eval 的 atom 前面加个 comma。
常用语法糖。
具体用法参考已有主题。
这里有个类似的问题:
你可以 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"))
(setq header '((“Hello” . “World”) (“Hello2” . “world2”) (“hello3” . ,hello)))
这样子并不行。还要在前面把单引号改为反单引号才行。不过也谢谢你。