これはプロジェクト オイラーの問題です。
N 以下のすべての素数を一覧表示する Fastest way から学び 、clojure を実装しました。
(defn get-primes [n]
(loop [numbers (set (range 2 n))
primes []]
(let [item (first numbers)]
(cond
(empty? numbers)
primes
:else
(recur (clojure.set/difference numbers (set (range item n item)))
(conj primes item))))))
次のように使用されます。
(reduce + (get-primes 2000000))
しかし、それはとても遅い..
なぜだろう、誰かが私を啓発できますか?