我是 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-
Run Code Online (Sandbox Code Playgroud)
当我在第 2 行执行 C-xC-e 时,结果如下:
Hello John!
Hello (, Jane)!
Hello (, Chad)!
Run Code Online (Sandbox Code Playgroud)
所以我查了一下撇号的作用,这是引用的简写。
(setq list-of-names (quote("John", "Jane", "Chad"))) ;; -1-
Run Code Online (Sandbox Code Playgroud)
结果是一样的。但是,当我不小心用重音符(`,或键盘中的 SHIFT + ~)替换撇号时,它会正确打印出来。
Hello John!
Hello Jane!
Hello Chad!
Run Code Online (Sandbox Code Playgroud)
我花了一个小时来查找重口音的作用,但到目前为止还没有运气。有谁知道emacs中的重口音是什么意思?
我正在使用带有韩语/英语键盘的 emacs-w32。
`类似于',但是当您可以使用,前缀不会被引用的符号时。请参阅 Elisp 手册中的“反引号”。
lisp 中的列表不是逗号分隔的。
(setq list-of-names `("John" "Jane" "Chad" ,(current-time-string)))
(mapcar 'hello list-of-names)
Run Code Online (Sandbox Code Playgroud)