在Java中,我们可以从类中创建对象/实例。 在Haskell,我们可以从类型的类的实例,例如: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
这是不一样的问题:confused about function as instance of functor in haskell观测值:我不问如何FMAP的作品,我问什么情况下decleration在Haskell指。
我的问题是: 实例在haskell中的含义是什么? 在java中,我们可以从类中创建实例,但在haskell中,实例看起来像是类型(如ShirtSize),您可以在其上应用类型函数(例如,MyEq中的(==)函数)。我对吗?以及Haskell中的实例与Java中的实例/对象相比是什么?
它更像Java中的“implements Interface”。 – Bergi
我认为你用“实例是类型(如ShirtSize),你可以应用类型函数(例如MyEq中的(==)函数)”。那之后几乎没有任何空间可供回答。当我们回应时,我们是否可以评论进一步的混淆? –
阅读从http://learnyouahaskell.com/making-ty-own-types-and-typeclasses Tyleslasses 102节我给出了一个很好的描述 –