【发布时间】:2019-11-02 17:57:38
【问题描述】:
我希望我的 reduce 调用中的匿名函数能够以相反的顺序对输入列表进行操作。在 javascript 中有一个名为 .reduceRight() https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/ReduceRight 的函数 clojure 中的等价物是什么?
【问题讨论】:
-
先颠倒顺序不可行吗?根据您要减少的顺序,这可能会同样(无效)有效。只有具有恒定随机访问的序列才能有效地进行右归约。
-
Clojure Coding Example,但在内部它会在 reduce 之前反转列表。
-
有关 Clojure 中
foldl和foldr的示例,请参阅此答案,后者可能更接近您正在寻找的内容:stackoverflow.com/a/41775034/483566 -
只是颠倒顺序...
(defn reduce-right [f coll] (reduce f (reverse coll)))(如果需要可以添加val) -
@Carcigenicate 您的评论对于任何减少权利的实施都是正确的。它不是与 clojure 相关的约束......所以我怀疑它是一个问题。
标签: clojure