Я хочу, чтобы вычислить наибольший общий делитель двух положительных целых чисел в Haskell:Haskell наибольшая общая ошибка делителя?
myGCD :: Integer -> Integer -> Integer
myGCD a b
| b == 0 = abs a
| otherwise = myGCD b (b `mod` a)
Это должно быть довольно простой алгоритм. Тем не менее, я нахожу, что получаю очень странные результаты. Я просто не могу найти ошибку в вышеупомянутой логике. Что-нибудь очевидное выделяется, что повлияет на вычисление наибольшего общего делителя a
и b
?