在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節我給出了一個很好的描述 –