我想编写一个小函数来向列表中添加一个值。它看起来像这样:
(defvar 票价 '(31.14 28.12 25.10 22.08 19.06 16.04 13.02 10))
(defun plus-extra (fare) (+ 3.02 fare))
(map 'plus-extra fares)
不出所料,elisp 会失败,因为该函数需要一个参数。我错过了什么?
谢谢 罗伯特
最佳答案
这里没有足够参数的函数是map
,不是你定义的。
Emacs Lisp 中不存在map
函数,它是由cl
包提供的。此 map
函数需要 3 个参数,第一个参数必须是 map
应返回的类型。这:
(map 'list 'plus-extra fares)
会起作用。但你想要的是:
(mapcar 'plus-extra fares)
这是原生的 elisp。
PS:不要忘记 Emacs 附带了它的文档! C-h f map RET ;-).
关于emacs - 如何将参数传递给 emacs lisp 中的映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6081921/