我最近注意到这里有一个非常清晰的插入排序实现:
Insertion sort in clojure throws StackOverFlow error
- 该实现会由于concat函数懒加载连接列表而导致内存溢出。 我想知道:
我们可以采用什么策略来“去惰性”列表从而在大型集合上获得更好的性能?
我最近注意到这里有一个非常清晰的插入排序实现:
Insertion sort in clojure throws StackOverFlow error
我们可以采用什么策略来“去惰性”列表从而在大型集合上获得更好的性能?
doall
可以完成任务,而将其累积到向量中的reduce
也提供了一种解决方案,不应该立即被忽略。结果具有快速随机访问的特性,这对于某些应用程序可能很有趣。(话虽如此:在生成的序列周围放置一个vec
也会得到相同的结果。) - kotarak