div
我发现和的行为之间有一个非常奇怪的不一致/
。
*ghci> :t 1 `div` 0
1 `div` 0 :: Integral a => a
*ghci> :t 1 / 0
1 / 0 :: Fractional a => a
*ghci> 1 / 0
Infinity
*ghci> 1 `div` 0
*** Exception: divide by zero
我很惊讶地注意到小数除以零导致Infinity
,而div
正确地导致异常。ANaN
也可以接受/
,但为什么Infinity
呢?这样的结果没有数学上的理由。请问您知道这是什么原因吗?