Haskell互质整数?

时间:2016-05-04 02:58:32

标签: haskell

coprime -3 4

这理论上应该计算两个整数是否是互质的,但我想知道Haskell编译器中究竟发生了什么?'如果我要跑,比如,coprime 3 4。如果这是True,程序将正常运行并返回??updated_at=2016-05-02T01:12:57.204Z。在这种情况下,Haskell编译器如何处理负数?

1 个答案:

答案 0 :(得分:4)

不是Haskell编译器计算它。它是标准库中的gcd functionsource code of the standard library

gcd             :: (Integral a) => a -> a -> a
{-# NOINLINE [1] gcd #-}
gcd x y         =  gcd' (abs x) (abs y)
                   where gcd' a 0  =  a
                         gcd' a b  =  gcd' b (a `rem` b)

表明它在计算最大公分母之前首先取两个参数的绝对值。