gpt4 book ai didi

haskell - 如果 Haskell 总是评估为 True,为什么它有 isIEEE?

转载 作者:行者123 更新时间:2023-12-03 15:10:39 25 4
gpt4 key购买 nike

Haskell RealFloat typeclass 有一个函数叫做 isIEEE其中,根据 documentation , 给出“如果参数是 IEEE 浮点数,则为 True”(并且可以想象,否则为 False)。

但这里是 isIEEE 的实现对于 Float :

instance RealFloat Float where
...
isIEEE _ = True

这是 Double 的实现:
instance RealFloat Double where
...
isIEEE _ = True

如果 isIEEE总是无条件的 True ,为什么要使用它?为什么在前奏曲中有它?

最佳答案

leftaroundaboutKoterpillar评论中提到,可以定义自己的 RealFloat 实例。这些定制的浮点类型不一定要遵循 IEEE 标准。

instance RealFloat MyFloat where
isIEEE _ = False
...

此外,如果您的浮点类型不是 IEEE,您可以让所有 RealFloat 谓词返回 False:

(...) The functions isNaN, isInfinite, isDenormalized, isNegativeZero, and isIEEE all support numbers represented using the IEEE standard. For non-IEEE floating point numbers, these may all return false.

Haskell 98 Report, 6.4.6

关于haskell - 如果 Haskell 总是评估为 True,为什么它有 isIEEE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33564368/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com