如何在 emacs lisp 中将参数传递给 map?

发布于 2024-11-09 01:10:36 字数 284 浏览 0 评论 0原文

我想编写一个小函数来向列表添加值。它看起来像这样:

(defvar fares '(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 会失败,因为该函数需要一个参数。我缺少什么?

谢谢 罗伯特

I want to write a small function to add a value to a list. it looks like this:

(defvar fares '(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)

Fairly predictably, the elisp barfs because the function needs an argument. What am I missing?

Thanks
Robert

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

錯遇了你 2024-11-16 01:10:36

这里没有足够参数的函数是 map,而不是您定义的函数。

Emacs Lisp 中不存在 map 函数,它由 cl 包提供。此 map 函数需要 3 个参数,第一个参数必须是 map 应返回的类型。这:

(map 'list 'plus-extra fares)

会起作用。但你想要的是这个:

(mapcar 'plus-extra fares)

这是原生的 elisp。

PS:不要忘记 Emacs 附带了它的文档! Ch f 地图 RET ;-)。

The function which doesn't have enough argument here is map, not the one you defined.

The map function does not exists in Emacs Lisp, it is provided by the cl package. This map function require 3 arguments, the first one must be the type of what map should return. This:

(map 'list 'plus-extra fares)

will work. But what you want is this:

(mapcar 'plus-extra fares)

which is native elisp.

PS: Don't forget that Emacs comes with its documentation! C-h f map RET ;-).

我早已燃尽 2024-11-16 01:10:36

使用mapcar,而不是map。使用mapcar,您的示例将产生:

(34.160000000000004 31.14 28.12 25.099999999999998 22.08 19.06 16.04 13.02)

如果您Mxdescribe-function RET map RET,您将看到map的签名不是您想要的预期的:

(map TYPE FUNCTION SEQUENCE...)

Map a FUNCTION across one or more SEQUENCEs, returning a sequence.
TYPE is the sequence type to return.

Use mapcar, not map. With mapcar, your example yields:

(34.160000000000004 31.14 28.12 25.099999999999998 22.08 19.06 16.04 13.02)

If you M-x describe-function RET map RET, you'll see the signature of map is not what you expected:

(map TYPE FUNCTION SEQUENCE...)

Map a FUNCTION across one or more SEQUENCEs, returning a sequence.
TYPE is the sequence type to return.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文