Я очень новичок в Haskell, и я просто пытаюсь найти сумму первых 2 миллионов простых чисел. Я пытаюсь сгенерировать простые числа, используя сито (Кажется, сито Эратосфена? ), но это действительно очень медленно, и я не знаю, почему. Вот мой код.
sieve (x:xs) = x:(sieve $ filter (\a -> a `mod` x /= 0) xs)
ans = sum $ takeWhile (<2000000) (sieve [2..])
Заранее спасибо.