在下图中,我们看到 RealFloat 是 Floating 的实例,而后者又是 Fractional 等的实例...
对于 Haskell 中的任何类型类,我们如何找到所有的“ parent ”?
最佳答案
只需使用 ghci 解释器。要演示您的示例:
λ> :i RealFloat
class (RealFrac a, Floating a) => RealFloat a where
floatRadix :: a -> Integer
floatDigits :: a -> Int
.....
instance Floating Float -- Defined in `GHC.Float'
instance Floating Double -- Defined in `GHC.Float'
λ> :i Floating
class Fractional a => Floating a where
pi :: a
exp :: a -> a
.....
从上面的示例中,您可以看到
RealFloat
与 RealFrac
和 Floating
的关系以及 Floating
与 Fractional
的关系。关于haskell - 如何找到类型类的祖先?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26278009/