gpt4 book ai didi

clojure - 相当于Clojure中的reduce,它的函数有3个参数?

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

我想知道 Clojure 中是否有与此等效的函数:

(defn reduce-1 [f val coll]
(loop [[head & tail] coll
out val]
(if head
(recur tail (f out head tail))
out)))

请注意,这与通常的 'reduce 不同,因为 'tail 被传递给 'f。

我一直在使用这个概念(递归地收集列表的第一个和其余部分的交互),以至于我开始怀疑是否有一个标准函数。

最佳答案

您可以使用iterate

(defn reduce-with-tail
[f initial coll]
(->> (seq coll)
(iterate next)
(take-while identity)
(reduce (fn [initial [head & tail]] (f initial head tail)) initial)))

关于clojure - 相当于Clojure中的reduce,它的函数有3个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10815097/

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