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
列出一份清单;“不吉利”;在clojure_Clojure_Evaluation_Lazy Evaluation - Fatal编程技术网

列出一份清单;“不吉利”;在clojure

列出一份清单;“不吉利”;在clojure,clojure,evaluation,lazy-evaluation,Clojure,Evaluation,Lazy Evaluation,我最近注意到这里有一个非常清晰的插入排序实现: 由于concat延迟地加入列表,它会遭受内存溢出。我想知道: 当我们想要在大型集合上获得更好的性能时,我们可以采用什么策略来“消除”列表 当然可以强制执行惰性计算 要记住的另一件有用的事情是,不懒惰。因此,这在大型计算中非常有用,可以确保在计算进行之前对中间结果进行评估并将其减少为单个输出值 嗯。。。经过更多的谷歌搜索,很明显,这个问题的简单答案是使用“doall”函数包装集合。然而,我想这里可能有一些值得了解的问题。我不太理解否决票doal

我最近注意到这里有一个非常清晰的插入排序实现:

  • 由于concat延迟地加入列表,它会遭受内存溢出。我想知道:
当我们想要在大型集合上获得更好的性能时,我们可以采用什么策略来“消除”列表

当然可以强制执行惰性计算


要记住的另一件有用的事情是,不懒惰。因此,这在大型计算中非常有用,可以确保在计算进行之前对中间结果进行评估并将其减少为单个输出值

嗯。。。经过更多的谷歌搜索,很明显,这个问题的简单答案是使用“doall”函数包装集合。然而,我想这里可能有一些值得了解的问题。我不太理解否决票
doall
将完成这项工作,并且
reduce
积累到向量中也提供了一个解决方案,不应立即放弃。结果具有快速随机访问,这对于某些应用程序可能很有趣。(也就是说:围绕结果序列的
vec
也会给出相同的结果。)我同意“做所有的事”都会起作用。。。事实上,它确实有效,我在发布这个问题后就尝试了它,关于另一个引用的帖子。请评论。