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

问题描述 投票:0回答:1

我是一名 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。

list emacs
1个回答
6
投票

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

Lisp 中的列表不是用逗号分隔的。

(setq list-of-names `("John" "Jane" "Chad" ,(current-time-string)))
(mapcar 'hello list-of-names)
© www.soinside.com 2019 - 2024. All rights reserved.