最大的收藏品

时间:2016-07-19 20:49:01

标签: clojure

我有一份清单清单。而且我希望最开始的时候有最大的名单。这有效,但可能需要很长时间:

(reverse (sort-by count coll))

什么是更有效的方法,大概是一次性去做?

1 个答案:

答案 0 :(得分:1)

谢谢你指出我的错误

不要使用延迟序列

快速演示:

user> (let [xs (doall(repeat 1000000 1))]
        (time (count xs)))
"Elapsed time: 29.393886 msecs"
1000000
user> (let [xs (into [] (repeat 1000000 1))]
        (time (count xs)))
"Elapsed time: 0.013346 msecs"
1000000