9
Haskell RealFloat
typeclass有一个叫做isIEEE
的函数,根据documentation,如果参数是一个IEEE浮点数,则该函数给出'True'(并且可以想象,否则为False)。为什么Haskell的isIEEE总是评估为True?
但这里的isIEEE
为Float
实施:
instance RealFloat Float where
...
isIEEE _ = True
这里是为Double
实施:
instance RealFloat Double where
...
isIEEE _ = True
如果isIEEE
总是无条件True
,为什么还要用呢?为什么要在前奏中呢?
只是因为只有'RealFloat'附带GHC服从IEEE754情况下,这并不意味着你不能定义自己的情况下,哪些没有。 – leftaroundabout
@leftaroundabout等等,你实际上可以定义你自己的浮点类型? –
@WanderNauta这就是类型类的要点,只要你可以提供你可以将类型作为它的实例的函数。 – Koterpillar