ref: a9ac58af31c1f793739da9ac9182438b107f184a
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