chickadee » math-utils » primes

(primes [N 2]) -> (-> integer)procedure

Returns an infinite generator for the primes from N, which must be a prime.

(define (generate-primes n)
  (assert (integer? n)
          'generate-primes "bad argument type - not integer" n)
  (assert (not (negative? n))
          'generate-primes "bad argument type - not positive" n)
  (let ((i n)
        (ps (primes)) )
    (lambda ()
      (if (zero? i) #!eof
          (let ((p (ps)))
            (set! i (- i 1))
            p ) ) ) ) )