在下图中,我们看到 RealFloat 是 Fl​​oating 的实例,而后者又是 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
  .....

从上面的示例中,您可以看到 RealFloatRealFracFloating 的关系以及 FloatingFractional 的关系。

关于haskell - 如何找到类型类的祖先?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26278009/

10-13 05:18