Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 如何反向减少,以便从最后一个索引开始迭代到0索引?_Clojure - Fatal编程技术网

Clojure 如何反向减少,以便从最后一个索引开始迭代到0索引?

Clojure 如何反向减少,以便从最后一个索引开始迭代到0索引?,clojure,Clojure,我希望reduce调用中的匿名函数能够以相反的顺序对输入列表进行操作。在javascript中有一个名为.reduceRight()的函数,clojure中的等效函数是什么 您希望从最后一个索引开始迭代,一直迭代到0索引。这表明你在处理向量之类的东西。如果是这样,您可以将函数应用于它,这将在恒定时间内产生其参数的反向序列 Clojure的向量具有java类PersistentVector。这实现了一个名为可逆的接口。这就是rseq函数要查找的内容 先颠倒顺序是不可行的吗?取决于你减少的顺序,这可

我希望reduce调用中的匿名函数能够以相反的顺序对输入列表进行操作。在javascript中有一个名为.reduceRight()的函数,clojure中的等效函数是什么

您希望从最后一个索引开始迭代,一直迭代到0索引。这表明你在处理向量之类的东西。如果是这样,您可以将函数应用于它,这将在恒定时间内产生其参数的反向序列


Clojure的向量具有java类
PersistentVector
。这实现了一个名为可逆的接口。这就是
rseq
函数要查找的内容

先颠倒顺序是不可行的吗?取决于你减少的顺序,这可能同样有效。只有具有恒定随机访问的序列才能有效地进行右归约。Clojure编码,但在内部它会在归约之前反转列表。请参阅此答案,以了解Clojure中的
foldl
foldr
示例,后者可能更接近您要查找的内容:只需反转序列
(defn reduce right[f coll](reduce f(reverse coll)))
(如果需要,可以添加
val
)@Carcigenicate您的评论适用于任何reduce right实现。这不是与clojure相关的约束。。。所以我怀疑这是个问题。