Я столкнулся со странной разницей во времени выполнения между lein repl
и LightTable Instarepl(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 мс"
но в lein repl
:
«Прошедшее время: 431,378074 мс»
Разница примерно в десять раз!
Так вот вопрос - почему такая большая разница?
Версия Clojure для LTIR и lein repl
равна 1.7.0
Этот код не мой, он взят из codereview