ref: db16f46fa7757c6bca1d8a9fdda3a23ede5ccdae
dir: /tests/Sieve.hs/
module Sieve(main) where
import Prelude
primes :: [Integer]
primes =
sieve (from 2)
where
from n = n : from (n + 1)
sieve (p : x) = p : sieve (filter x)
where
filter (n : x) =
if n `rem` p == 0 then filter x
else n : filter x
main :: IO ()
main =
print $ take 100 primes