将 seq 展开为单独的标量

发布于 2024-11-17 13:07:29 字数 60 浏览 3 评论 0原文

我想将 map 生成的惰性序列的成员作为单独的参数提供给另一个函数。是否有一个函数可以拼接(惰性)seq?

I want to feed the members of a lazy seq produced by map as individual arguments to another function. Is there a function that splices a (lazy) seq?

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

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

发布评论

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

评论(1

っ〆星空下的拥抱 2024-11-24 13:07:29

使用应用

(defn f [a b c d e]
  (str "a = " a " b = " b " c = " c " d = " d " e = " e))

(println (apply f (range 5)))

;; prints: a = 0 b = 1 c = 2 d = 3 e = 4

如您所见,函数 f 接受 5 个参数,并且(范围 5)返回 5 个参数的惰性 seq。

只需确保 seq 的大小与函数期望的参数数量相同,否则您将在运行时得到异常。

Use apply.

(defn f [a b c d e]
  (str "a = " a " b = " b " c = " c " d = " d " e = " e))

(println (apply f (range 5)))

;; prints: a = 0 b = 1 c = 2 d = 3 e = 4

As you can see, function f takes 5 arguments and (range 5) returns a lazy seq of 5 arguments.

Just make sure the size of the seq is the same as the amount of arguments expected by the function, or you will get an exception at runtime.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文