Prime Sieve w Haskell
Jestem bardzo nowy w Haskell i próbuję znaleźć sumę pierwszych 2 milionów liczb pierwszych. Próbuję wygenerować liczby pierwsze za pomocą sita (myślę, że sito Eratostenesa?), Ale to naprawdę bardzo powolne i nie wiem dlaczego. Oto mój kod.
sieve (x:xs) = x:(sieve $ filter (\a -> a `mod` x /= 0) xs)
ans = sum $ takeWhile (<2000000) (sieve [2..])
Z góry dziękuję.