Я пытаюсь изучить Haskell, и я застрял в проблеме с рекурсией. То, что мне нужно сделать, это найти, что число простое или нет. Это моя попытка. Но это не работает. Он дает «False» для не простых чисел, но он застревает в бесконечном цикле, когда число является простым.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
Большое вам спасибо. Я страдал от головной боли, пытаясь понять, что было не так, когда было ясно. Я действительно высоко ценю это! –
@ user2850788 Добро пожаловать. Пожалуйста, подумайте над тем, чтобы ответить и принять этот ответ, если он вам поможет. http://meta.stackexchange.com/a/5235/235416 – thefourtheye