gpt4 book ai didi

clojure - 在clojure中,是否有一个类似doseq的函数,它接收一个函数而不是body

转载 作者:行者123 更新时间:2023-12-02 06:06:26 25 4
gpt4 key购买 nike

我想重复执行一个函数 其副作用 在一个集合上。
常用的方法是:

(defn my-func [x] (println x))
(doseq [x '(1 2 3) ]
(my-func x))

但是 x 变量有点麻烦。我更喜欢以下代码:
 ((comp doall map) my-func '(1 2 3))

你认为这是一个优雅的解决方案吗?

最佳答案

clojure.core/dorun 优于doall , 因为 doall将整个序列保存在内存中,以便将其返回给您。 dorun返回 nil , 就像 doseq做。说语言核心“应该”提供类似 domap 的东西有点激进——对于一种不鼓励突变和副作用的语言,Clojure 已经拥有大量非常接近您想要的并且易于组合的函数。

关于clojure - 在clojure中,是否有一个类似doseq的函数,它接收一个函数而不是body,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9143837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com