Skip to content

Instantly share code, notes, and snippets.

@mecdemort
Created April 19, 2011 01:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mecdemort/926654 to your computer and use it in GitHub Desktop.
Save mecdemort/926654 to your computer and use it in GitHub Desktop.
;; clojure.contrib.lazy-seqs/primes
(defn primes
([] (cons 2 (primes [2] 3)))
([ps n]
(lazy-seq
(if (not-any? #(zero? (rem n %)) (take-while #(<= (* % %) n) ps))
(cons n (primes (conj ps n) (+ 2 n)))
(primes ps (+ 2 n))))))
(def primes
(cons 2
((fn primesfn [n]
(lazy-seq
(if (some #(zero? (rem n %)) (take-while #(<= (* % %) n) primes))
(primesfn (+ 2 n))
(cons n (primesfn (+ 2 n))))))
3)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment