Sieve of Eratosthenes: Difference between revisions

m (Minor C# fixes)
Line 1,636:
 
=={{header|Clojure}}==
"primes<" is a functional interpretation of the Sieve of Eratosthenes. It uses a transducer internally but can be written with "set" in place of "into {}" to make it even more terse.
<lang clojure>
(defn primes< [n]
{:pre [(> n 2)]}
(remove (into #{}
(mapcat #(range (* % %) n %))
(range 3 (Math/sqrt n) 2))
(cons 2 (range 3 n 2))))
</lang>
 
Calculates primes up to and including ''n'' using a mutable boolean array but otherwise entirely functional code.
<lang clojure>