2015-05-23 128 views
1

爲什麼匹配的模式在此代碼重複:Haskell - 模式匹配重疊?

(+) (Roman (_, [])) x = x 
(+) x (Roman (_, [])) = x 

它將使意義考慮x + y相同y + x,但我不認爲哈斯克爾需要照顧的是,或不是嗎?

+1

我得到你應該用含半幺羣或不便的感覺。 –

+0

'Roman'的定義是什麼? – dfeuer

回答

3

x可能是任何東西,所以它可能是Roman (_,[])

+0

那麼我將如何實現這個沒有重疊的模式呢?基本上,如果一個參數在元組的第二部分中有一個空列表,我只想返回其他參數 – tolUene

+3

呃,你的代碼不會給我任何警告並且工作... –