假设我有一个返回引用列表的函数,如下所示:
(defun create-structure (n l)
'(structure (name . n)(label . l)))
Run Code Online (Sandbox Code Playgroud)
我想要返回的功能:
(create-structure foo bar)
-> '(structure (name . foo)(label . bar))
Run Code Online (Sandbox Code Playgroud)
相反,我得到了惊喜:
-> '(structure (name . n)(label . l))
Run Code Online (Sandbox Code Playgroud)
至少有两种方法可以实现这一点,使用反引用语法或显式调用列表.
(defun create-structure-1 (n l)
`(structure (name . ,n) (label . ,l)))
(defun create-structure-2 (n l)
(list 'structure (cons 'name n) (cons 'label l)))
Run Code Online (Sandbox Code Playgroud)
GNU Emacs Lisp Reference提供了关于该主题的良好读物: - http://www.gnu.org/software/emacs/manual/html_node/elisp/Backquote.html#Backquote
| 归档时间: |
|
| 查看次数: |
238 次 |
| 最近记录: |