Haskell:比较NaN值

时间:2013-11-06 10:41:56

标签: haskell nan

我为一个优化和评估函数的Haskell程序编写了quickcheck个测试。

问题是quickcheck生成导致NaN的表达式,如:

> acos(2)
NaN

Haskell将以下语句评估为false:

> acos(2)==acos(2)
False

因此我的quickcheck测试失败了。 有没有办法比较NaN值?

1 个答案:

答案 0 :(得分:7)

不,正如IEEE 754定义比较2 NaN s总是返回false。要清除Haskell中的值NaN,您可以使用isNaN方法或自己编写

isNaN' :: a -> Bool
isNaN' a = a /= a