• Primes

    From B. Pym@21:1/5 to All on Thu Jun 19 21:55:51 2025
    (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)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From B. Pym@21:1/5 to B. Pym on Sun Jun 22 16:05:50 2025
    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))]))

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)