gpt4 book ai didi

haskell - 类型类 - 简要说明

转载 作者:行者123 更新时间:2023-12-02 21:06:54 25 4
gpt4 key购买 nike

我是 Haskell 新手,并且有 C++ 背景。

我在理解类型和类型类之间的关系时遇到一些困难。

据我了解,类型类指定了一堆函数。就像 Eq 类型类指定 ==/= 一样。

但是现在假设我有一个类型 t,当我说 tEq 类型类的实例时,这意味着什么。这是否仅仅意味着 t 支持并实现 Eq 指定的功能?

最佳答案

Does it simply mean that t supports and implements the functions specified by Eq ?

是的,正是如此。

它只是意味着有一个 Eq t 实例,它定义了 (==) 运算符,如 Eq 所要求的。因此,您可以在代码中对类型 t 使用所述运算符。

一个愚蠢的例子:

data MyPair = P Int String

instance Eq MyPair where
(P i1 s1) == (P i2 s2) = -- we define equality ...
i1==i2 && s1==S2 -- ... as component-wise equality

testTrue :: Bool
testTrue = (P (1+1) "aa") == (P 2 ("a"++"a"))

在上面的例子中,常见的习惯用法实际上是

data MyPair = P Int String deriving Eq

它会自动派生实例——因此无需显式编写它。

关于haskell - 类型类 - 简要说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31145309/

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