相关疑难解决方法(0)

Clojure:减少,减少和无限列表

减少和减少可以让您在序列中累积状态.序列中的每个元素将修改累积状态,直到达到序列结束.

在无限列表中调用reduce或reduce的含义是什么?

(def c (cycle [0]))
(reduce + c)
Run Code Online (Sandbox Code Playgroud)

这将很快抛出OutOfMemoryError.顺便说一句,(reduce + (cycle [0]))不会抛出OutOfMemoryError(至少不是我等待的时间).它永远不会回来.不知道为什么.

有没有办法以一种有意义的方式调用无限列表中的减少或减少?我在上面的例子中看到的问题是,最终列表的评估部分变得足够大以溢出堆.也许无限列表不是正确的范例.减少生成器,IO流或事件流会更有意义.在评估并用于修改状态后,不应保留该值.

clojure

13
推荐指数
2
解决办法
4285
查看次数

标签 统计

clojure ×1