• Primes

    From B. Pym@Nobody447095@here-nor-there.org to comp.lang.lisp on Thu Jun 19 21:55:51 2025
    From Newsgroup: comp.lang.lisp

    (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)


    --- Synchronet 3.21d-Linux NewsLink 1.2
  • From B. Pym@Nobody447095@here-nor-there.org to comp.lang.lisp on Sun Jun 22 16:05:50 2025
    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