-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathprimes.scm
More file actions
27 lines (22 loc) · 684 Bytes
/
Copy pathprimes.scm
File metadata and controls
27 lines (22 loc) · 684 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
;;; PRIMES -- Compute primes less than n, written by Eric Mohr.
(import (rnrs))
(define (interval-list m n)
(if (> m n)
'()
(cons m (interval-list (+ 1 m) n))))
(define (sieve l)
(letrec ((remove-multiples
(lambda (n l)
(if (null? l)
'()
(if (= (remainder (car l) n) 0)
(remove-multiples n (cdr l))
(cons (car l)
(remove-multiples n (cdr l))))))))
(if (null? l)
'()
(cons (car l)
(sieve (remove-multiples (car l) (cdr l)))))))
(define (primes<= n)
(sieve (interval-list 2 n)))
(primes<= 6000)