3
我有以下幾點:類型類爲我對一個一個
data Pair a =
Pair a a
而想要Eq類型類實例化它。
instance Eq (Pair a) where
(==) (Pair x x') = x == x'
我得到的錯誤:
無法匹配,期望類型對一個 - >布爾「與實際類型布爾」
我是怎麼寫的了?
我有以下幾點:類型類爲我對一個一個
data Pair a =
Pair a a
而想要Eq類型類實例化它。
instance Eq (Pair a) where
(==) (Pair x x') = x == x'
我得到的錯誤:
無法匹配,期望類型對一個 - >布爾「與實際類型布爾」
我是怎麼寫的了?
因爲
(==) :: a -> a -> Bool
我們假定你是你的實現不工作(==)有一個參數((對X X')實際上一種說法是),它實際上需要兩個。因此錯誤,
Couldn't match expected type Pair a -> Bool' with actual type Bool'
(==)
被部分應用,以便它,而它預計將返回一個布爾返回Pair a -> Bool
。
我認爲這是正確的,但我不是100%確定的。
instance Eq a => Eq (Pair a) where
(==) (Pair x x') (Pair y y') = x == y && x' == y'
這是正確的:'Eq T'實例提供了一種方法來比較'T'類型的兩個值。在你的情況下,這是兩對。 – chi