Liczby pierwsze
Najprostszy sposób na wygenerowanie liczb pierwszych:
primes :: [Integer]
primes = sieve [2..]
where
sieve (p:xs) = p : sieve [x | x <- xs, x `mod` p /= 0]
Stała primes jest nieskończoną listą liczb, dlatego warto skorzystać tylko z kilku jej elementów:
print (take 5 primes)
Więcej na temat liczb pierwszych na stronie Prime numbers.