如何找到一个类型的祖先?

时间:2014-10-09 12:05:27

标签: haskell

在下图中我们看到RealFloat是一个浮动的实例,而后者又是一个Fractional等实例...

对于Haskell中的任何类型类,我们如何找到所有"父母" ?

enter image description here

1 个答案:

答案 0 :(得分:7)

只需使用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的关系。