Премьер-сито в Хаскеле

Я очень новичок в Haskell, и я просто пытаюсь найти сумму первых 2 миллионов простых чисел. Я пытаюсь сгенерировать простые числа с помощью сита (я думаю, что это сито Эратосфена?), Но оно действительно очень медленное, и я не знаю почему. Вот мой код

sieve (x:xs) = x:(sieve $ filter (\a -> a `mod` x /= 0) xs)
ans = sum $ takeWhile (<2000000) (sieve [2..])

Заранее спасибо.

Ответы на вопрос(5)

Ваш ответ на вопрос