Haskell 具有字符串数据类型的自己的Num实例
我想将我的DataconstructorHaskell 具有字符串数据类型的自己的Num实例,haskell,Haskell,我想将我的DataconstructorMP转换为Num MP看起来像这样的data MP=MP String 并且字符串仅由+和-构成,例如“++-+-+” 其中,每个+表示+1,a-表示-1 我还有一个函数,可以将该字符串规范化,例如“++-+-+”到“++” 现在我想把它转换成Num的一个实例,如下所示: instance Num MP where (+) = undefined (*) = undefined negate = undefined signum = und
MP
转换为Num
MP
看起来像这样的data MP=MP String
并且字符串仅由+和-构成,例如“++-+-+”
其中,每个+表示+1,a-表示-1
我还有一个函数,可以将该字符串规范化,例如“++-+-+”到“++”
现在我想把它转换成Num的一个实例,如下所示:
instance Num MP where
(+) = undefined
(*) = undefined
negate = undefined
signum = undefined
abs = undefined
fromInteger = undefined
所以最后它应该是这样工作的:“+++”-“=”++“
或“+++”*“-”=”
等等
有人知道我该怎么做吗?你说:
我试过(+)(mpa)(mpb)=(a++b)
您正在正确地编写一个接受类型为
MP
的值的函数,但还必须返回类型为MP
的值,如(+)(MP a)(MP b)=MP(a++b)
中所示。当然,在该实现中仍然存在错误,但这应该会让您克服第一个困难,继续进行您自己可以进一步使用的操作。您可以发送您的规范化函数吗?还有你试过什么?我试过(+)(MP a)(MP b)=(a++b)@aplet123非常感谢@丹尼尔·瓦格纳
instance Num MP where
(+) = undefined
(*) = undefined
negate = undefined
signum = undefined
abs = undefined
fromInteger = undefined