我正在尝试学习 Haskell,但遇到了递归问题。我需要做的是找出一个数字是否是素数。这是我迄今为止的尝试。但它不起作用。它为非素数给出“假”,但当数字为素数时它会陷入无限循环。
isPrime :: Int -> Bool
isPrime num = primeTest num 2
where
primeTest :: Int -> Int -> Bool
primeTest num x
| x == num = True
| num `mod` x == 0 = False
| otherwise = primeTest num (x + 1)
where
x = 2