2015-05-23 129 views
1

为什么匹配的模式在此代码重复:Haskell - 模式匹配重叠?

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

它将使意义考虑x + y相同y + x,但我不认为哈斯克尔需要照顾的是,或不是吗?

+1

我得到你应该用含半幺群或不便的感觉。 –

+0

'Roman'的定义是什么? – dfeuer

回答

3

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

+0

那么我将如何实现这个没有重叠的模式呢?基本上,如果一个参数在元组的第二部分中有一个空列表,我只想返回其他参数 – tolUene

+3

呃,你的代码不会给我任何警告并且工作... –