From Newsgroup: comp.lang.lisp
B. Pym wrote:
(defun primes-below-limit (limit)
(cons 2
(loop for i from 3 by 2 below limit
unless (loop for p in primes
thereis (integerp (/ i p)))
collect i into primes
finally (return primes))))
Gauche Scheme:
(use srfi-1) ;; take-while
(use math.prime)
(define (primes-below-limit limit)
(take-while (lambda(n) (< n limit)) *primes*))
(primes-below-limit 88)
===>
(2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83)
Using "is":
(define (primes-below-limit limit)
(take-while (is < limit) *primes*))
Given:
(define is
(case-lambda
[(x) (lambda(y) (equal? y x))]
[(pred x) (lambda(y) (pred y x))]
[(key pred x) (lambda(y) (pred (key y) x))]))
--- Synchronet 3.21d-Linux NewsLink 1.2