gpt4 book ai didi

haskell - 如何在haskell中检查特定文字是否属于类型类

转载 作者:行者123 更新时间:2023-12-01 09:26:03 25 4
gpt4 key购买 nike

我想在haskell中检查一个文字值-1是否符合Eq Typeclass。什么是最简单的测试方法。

最佳答案

这是一个稍微令人困惑的问题,因为“我想检查”暗示您可能想动态地找出它。

Haskell 将在编译时检查所有类型,包括类型类的成员资格。因此,要检查文字是否属于支持 Eq 的类型,您只需将其与 (==)(/=) 一起使用并尝试编译它。

如果您只是探索哪些类型有 Eq 实例,请查看 GHCi 中的 :info 命令:

Prelude> let x = 1
Prelude> :info x
x :: Integer -- Defined at <interactive>:1:5

Prelude> :info Integer
data Integer
= integer-gmp:GHC.Integer.Type.S# GHC.Prim.Int#
| integer-gmp:GHC.Integer.Type.J# GHC.Prim.Int# GHC.Prim.ByteArray#
-- Defined in integer-gmp:GHC.Integer.Type
instance Enum Integer -- Defined in GHC.Num
instance Eq Integer -- Defined in GHC.Classes
instance Integral Integer -- Defined in GHC.Real
instance Num Integer -- Defined in GHC.Num
instance Ord Integer -- Defined in GHC.Classes
instance Read Integer -- Defined in GHC.Read
instance Real Integer -- Defined in GHC.Real

Prelude> :info Eq
class Eq a where
(==) :: a -> a -> Bool
(/=) :: a -> a -> Bool
-- Defined in GHC.Classes
instance Eq a => Eq (Maybe a) -- Defined in Data.Maybe

关于haskell - 如何在haskell中检查特定文字是否属于类型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23644126/

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