gpt4 book ai didi

haskell - Haskell 中的实例是什么意思?

转载 作者:行者123 更新时间:2023-12-03 23:24:18 25 4
gpt4 key购买 nike

在面向对象的语言(例如 Java 和 Python)中,我们可以从类中创建对象/实例。
在 Haskell 中,我们可以从类型类中创建实例,例如:

data ShirtSize = S | M | L      -- Here ShirtSize is a enum data-type

class MyEq a where
(==) :: a -> a -> Bool
instance MyEq ShirtSize where -- Here ShirtSize is an instance of the MyEq type-class
S == S = True
M == M = True
L == L = True
_ == _ = False
我的问题是:
实例在haskell中是什么意思?
在 java 中,我们可以从类中创建实例,但在 haskell 中,实例似乎是类型(如 ShirtSize),您可以在其上应用类型类函数(例如 MyEq 中的 (==) 函数)。我对吗?与Java中的实例/对象相比,Haskell中的实例是什么?

最佳答案

在 Java 中,类系统是一种对相似对象进行分组的方法。类的实例是属于该类的单个对象。

在 Haskell 中,类系统(粗略地说)是一种对相似类型进行分组的方法。 (这就是我们称它们为“类型类”的原因)。类的实例是属于该类的单个类型。 (也就是说,直到您开始考虑多参数类型类)。

顺便说一句,Haskell(单参数)类有点类似于 Java 接口(interface),并且通过扩展,类似于 Java 类。或者,Haskell 实例可能类似于 Java 类。最好将其视为巧合。接近这个术语,记住它的数学起源。一个类只是属于一起的一堆东西,一个实例就是其中之一。

关于haskell - Haskell 中的实例是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44886668/

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