标签: haskell nan
我为一个优化和评估函数的Haskell程序编写了quickcheck个测试。
quickcheck
问题是quickcheck生成导致NaN的表达式,如:
NaN
> acos(2) NaN
Haskell将以下语句评估为false:
> acos(2)==acos(2) False
因此我的quickcheck测试失败了。 有没有办法比较NaN值?
答案 0 :(得分:7)
不,正如IEEE 754定义比较2 NaN s总是返回false。要清除Haskell中的值NaN,您可以使用isNaN方法或自己编写
isNaN
isNaN' :: a -> Bool isNaN' a = a /= a