(define (prime-iter n sn l) (let loop ((p (reverse l))) ; we dont need to check for null because of how it was set up (if (> sn (car p)) (cons n l) (if (= 0 (modulo n (car p))) l (loop (cdr p)))))) (define (gen-primes n) (let loop ((i 15) (l '(13 11 7 5 3 2))) ; (display (conc i " " l "\n")) (if (>= i n) l (loop (+ 2 i) (prime-iter i (sqrt i) l)))))