;;; Prime number generation in WINTERP, but this is just a Lisp (defun iota2 (n m) (if (> n m) '() (cons n (iota2 (1+ n) m)))) (defun filter (x ys) (if (null ys) '() (if (zerop (mod (car ys) x)) (filter x (cdr ys)) (cons (car ys) (filter x (cdr ys)))))) (defun sieve (xs) (if (null xs) '() (cons (car xs) (sieve (filter (car xs) (cdr xs)))))) (defun primes (n) (sieve (iota2 2 n))) |