我已经开始让我的类型类成为Num.的实例
data Interval = IV (Int,Int)
| Empty
instance Num Interval where
(+) Empty _ = Empty
(*) Empty _ = Empty
(+) _ Empty = Empty
(*) _ Empty = Empty
当我测试到目前为止编写的+
和*
的定义时,我总是得到错误:
Conflicting definitions for ‘+’
在定义操作时,需要在开始下一个操作之前完全定义一个操作。
因此,首先定义(+)
,然后定义(*)
,依此类推。这应该可以解决您的问题。
instance Num Interval where
(+) Empty _ = Empty
(+) _ Empty = Empty
(*) Empty _ = Empty
(*) _ Empty = Empty
您需要定义您的IV(Int, Int)
。对于加法(+)
,不要将其附加到末尾,而是将其添加到加法的现有定义中。