egison-3.0.12: lib/math/prime.egi
(define $eratosthenes
(lambda [$n]
(let {[$ls (between 2 n)]}
(letrec {[$looper
(lambda [$ps $ls]
(let {[$p (car ls)]
[$xs (cdr ls)]}
(if (gt? (* p p) (rac xs))
{@ps @ls}
(looper {@ps p} (filter (lambda [$l] (not (eq? (remainder l p) 0))) xs)))))
]}
(looper {} ls)))))