Emacs-Lisp列表,撇号(')和反引号(重音符号,`)

时间:2016-11-25 09:13:05

标签: list emacs

我是一名emacs新手,正在阅读本教程:https://learnxinyminutes.com/docs/elisp/

我写了这段代码:

(defun hello (name)
  (insert (format "Hello %s!\n" name)))

(setq list-of-names '("John", "Jane", "Chad")) ;; -1-

(mapcar `hello list-of-names) ;;-2-

当我在第2行做C-xC-e时,结果如下:

Hello John!
Hello (, Jane)!
Hello (, Chad)!

所以我抬头看了撇号的作用,这是一个简短的引用。

    (setq list-of-names (quote("John", "Jane", "Chad"))) ;; -1-

结果是一样的。但是当我不小心用重音符号(`,或键盘上的SHIFT +〜)替换了撇号时,它正确打印出来。

Hello John!
Hello Jane!
Hello Chad!

到目前为止,我花了一个小时来查看重要的口音,但没有运气。有谁知道emacs中重要的重音是什么意思?

我正在使用带有韩语/英语键盘的emacs-w32。

1 个答案:

答案 0 :(得分:4)

`'类似,但是当您可以使用,不会引用的符号添加前缀时。请参阅Elisp手册中的“反引号”。

lisp中的列表不以逗号分隔。

(setq list-of-names `("John" "Jane" "Chad" ,(current-time-string)))
(mapcar 'hello list-of-names)