gpt4 book ai didi

haskell - 检查 type 是否实例化 GHCI 中的类型类

转载 作者:行者123 更新时间:2023-12-01 22:28:54 24 4
gpt4 key购买 nike

有没有办法询问 GHCi 类型是否实例化类型类?我在玩弄^^运算符并输入:

Prelude> :type (^^)
(^^) :: (Integral b, Fractional a) => a -> b -> a

非常有用。然后我想知道 Rational 是否实例化了 Fractional。我在 Hoogle 上找到了 Rational,取消引用 Ratio,最后发现:

Integral a => Fractional (Ratio a)

有更简单的方法吗?像这样的东西:

:listypeclasses Rational

:listinstances Fractional

最佳答案

您想要:info ,也可以缩写为 :i 。使用:info <type>列出该类型的实例或 :info <class>列出该类的实例。

Rational为例,因为它是类型别名, :info不会直接列出实例。但是,它告诉您这是一个类型别名,您可以使用 :info 来跟进。关于其别名的类型:

ghci> :info Ratio
data Ratio a = !a :% !a -- Defined in ‘GHC.Real’
instance Eq a => Eq (Ratio a) -- Defined in ‘GHC.Real’
instance Integral a => Ord (Ratio a) -- Defined in ‘GHC.Real’
instance Show a => Show (Ratio a) -- Defined in ‘GHC.Real’
instance (Integral a, Read a) => Read (Ratio a)
-- Defined in ‘GHC.Read’
instance Integral a => Enum (Ratio a) -- Defined in ‘GHC.Real’
instance Integral a => Fractional (Ratio a)
-- Defined in ‘GHC.Real’
instance Integral a => Num (Ratio a) -- Defined in ‘GHC.Real’
instance Integral a => Real (Ratio a) -- Defined in ‘GHC.Real’
instance Integral a => RealFrac (Ratio a) -- Defined in ‘GHC.Real’

关于haskell - 检查 type 是否实例化 GHCI 中的类型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52102421/

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