gpt4 book ai didi

haskell - 确定函数是独立的还是类型类的一部分

转载 作者:行者123 更新时间:2023-12-03 14:56:59 25 4
gpt4 key购买 nike

当我遇到一个函数时,是否有一种通用的方法来确定它是完全独立的还是类型类的一部分?例如:

fromIntegral :: (Integral a, Num b) => a -> b

这是我为找到答案而开发的方法:
  • 去 GHCi 做 :info在所有列出的类约束上,在本例中为 :info Integral:info Num .
  • 检查其中是否有任何列出了该功能。
  • 如果是这样,它就是该类型类的一部分。如果不是,它是一个独立的函数(forIntegral 就是这种情况)。

  • 我的方法靠谱吗?它一般工作吗?

    最佳答案

    你可以做:info直接上函数。

    Prelude> :info fromInteger
    class Num a where
    ...
    fromInteger :: Integer -> a
    -- Defined in `GHC.Num'

    Prelude> :info fromIntegral
    fromIntegral :: (Integral a, Num b) => a -> b
    -- Defined in `GHC.Real'

    如您所见, fromInteger属于 Num类型类,而 fromIntegral才不是。

    关于haskell - 确定函数是独立的还是类型类的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23529427/

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