我剛開始學習Haskell,遇到了2-adic類型的問題。這裏的重要代碼:模式匹配中的衝突定義
data Rectangle = NoRect | Rect (Float,Float) (Float,Float) | Pane
deriving (Show)
class Collision s1 s2 where
collides :: s1 -> s2 -> Bool
instance (Collision Rectangle Rectangle) where
collides (Rect (aOrX, aOrY) (aCorX, aCorY))
(Rect (bOrX,bOrY) (bCorX,bCorY)) = ...
collides Pane _ = True
...
編譯器(GHC 6.12.1)現在抱怨 Conflicting definitions for 'collides'
我不明白,怎麼定義會衝突,你呢?
謝謝!
無法重現。當用false替換'...'並啓用MultiParamTypeClasses時,你的代碼對我來說編譯得很好。 – sepp2k 2010-10-23 12:57:09
@ sepp2k,我做了完全相同的事情,並在1分鐘後發佈我的答案! – HaskellElephant 2010-10-23 12:59:31
對我來說,它不但編譯好。除了'MultiParamTypeClasses'外還有其他標誌嗎?嘗試刪除'...'中的內容,並讓這些類型正常工作。 – Dario 2010-10-23 12:59:59