Помогите придумать функцию, генерирующую бесконечный список простых чисел, такой же как [1..] или fib a b = a:fib b (a+b).
Очевидно, что это можно сделать неоптимально:
ghci> let isprime x = all (\n->x`mod`n/=0) [2..x-1]
ghci> take 10 $ filter isprime [2..]
ghci> let isprimeof x primes = all (\y-> x`mod`y/=0) primes
ghci> let newprime primes = x where Just x = find (flip isprimeof primes) [(last primes)..]
ghci> let addprime primes = primes ++ [newprime primes]