我正在阅读 this ,但老实说,我很难看出什么
class Eq a where
(==) :: a -> a -> Bool
实现,其中
instance Eq Integer where
x == y = x `integerEq` y
没有达到。我理解第二个代码定义了对两个 Integer 类型执行相等的结果应该是什么。那么第一个的目的是什么??
最佳答案
class
声明说“我现在要定义一堆函数,这些函数适用于几种不同的类型”。 instance
声明说“这就是这些函数对这种类型的工作方式”。
在您的具体示例中,class Eq
说“Eq
表示具有名为 ==
的函数的任何类型,而 instance Eq Integer
说“这就是 ==
对 Integer
的作用方式”。
关于haskell - 类声明和实例声明之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12529439/