haskell - 类声明和实例声明之间有什么区别?

标签 haskell instance typeclass

我正在阅读 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/

相关文章:

parsing - *** 异常 : Prelude. 读取 : no parse in Haskell - Parsing, 表达式和递归

php - 替换字符串的第二个实例

python - 什么是单例/博格模式?为什么他们不适合我/我的概念哪里错了?

php - 如何在具有参数化构造函数的 PHP 中实例化 .NET 类?

haskell - :t in ghci access all that introspective information?是怎么回事

haskell - 如果我有自定义 Eq,我是否需要自定义 Ord 实例?

list - Haskell,定义一个无限列表,动态添加数据并同时排序。如何?

haskell - 基于REFLECTX切换收缩和扩展

haskell - 为什么 `[1, "a"]::[forall a. Show a => a]` 不允许?

haskell - 吃我的麦片并解析它