在使用 Haskell 输入数字后,我试图计算下一个最接近的素数,我编写了 2 个函数isPrime
和nextPrime
这是我的代码:
isPrime :: Int -> Bool
isPrime x | x < 2 = False
| otherwise = prime (2:[3,4..(x-1)])
where
prime (y:z)
| x < y ^ 2 = True
| x `mod` y == 0 = False
| otherwise = prime z
nextPrime :: Int -> Int
nextPrime n | isPrime n == True = n
| otherwise = nextPrime n
where
n = n + 1
我遇到的问题是当我运行它时出现此错误:*异常:“<<”loop“>>”
不知道怎么回事,是死循环吗?