我有一份清单清单。而且我希望最开始的时候有最大的名单。这有效,但可能需要很长时间:
(reverse (sort-by count coll))
什么是更有效的方法,大概是一次性去做?
答案 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