我在完成时间内面临着奇怪的差异
lein repl
和LightTable Instarrepl(LTIR)。例如,以下代码:
(defn lazy-primes
([] (cons 2 (lazy-seq (lazy-primes 3 [ 2 ]))))
([current calculated-primes]
(loop [ [first-prime & rest-primes] calculated-primes]
(if (> (* first-prime first-prime) current)
(cons current (lazy-seq (lazy-primes
(inc current)
(conj calculated-primes current))))
(if (= 0 (mod current first-prime))
(lazy-seq (lazy-primes (inc current) calculated-primes))
(recur rest-primes))))))
(time (last (take 10001 (lazy-primes))))
在我的LTIR中:
“已用时间:4535.442412毫秒”
但在
雷恩回复
:
“已用时间:431.378074毫秒”
大约相差十倍!
那么,问题来了——为什么差异这么大?
用于LTIR和
雷恩回复
是
1.7.0
这个代码不是我的,它来自
codereview