0
考慮以下幾種類型:模式匹配的自定義類型
data MyType = MyType Val Col deriving (Eq, Show)
data Val = Val A | B | C deriving (Eq, Ord, Show, Read)
data Col = X | Y | Z deriving (Eq, Ord, Show, Read)
如果我現在有喜歡sameVal :: MyType -> MyType -> Bool
一個功能,應該檢查Val
領域的平等,並嘗試做這樣的:
sameVal (MyType v _) (MyType v _) = True
sameVal _ _ = False
我GHC哼唧告訴我,v
有衝突的定義...
Conflicting definitions for ‘v’
Bound at: htest.hs:6:14
htest.hs:6:24
In an equation for ‘sameVal’
但它應該暗示它們必須是相同的。我不在這裏?
注意:我明白了,我可以給他們不同的名字,並在後面的函數體中比較v1
和v2
。這個問題一般是關於模式匹配,而不是這個特定的例子。
坦克的任何幫助。
抱歉沒有看到...這些回答我的問題...(現在不能刪除,因爲答案) – Chris