Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Haskell 具有字符串数据类型的自己的Num实例_Haskell - Fatal编程技术网

Haskell 具有字符串数据类型的自己的Num实例

Haskell 具有字符串数据类型的自己的Num实例,haskell,Haskell,我想将我的DataconstructorMP转换为Num MP看起来像这样的data MP=MP String 并且字符串仅由+和-构成,例如“++-+-+” 其中,每个+表示+1,a-表示-1 我还有一个函数,可以将该字符串规范化,例如“++-+-+”到“++” 现在我想把它转换成Num的一个实例,如下所示: instance Num MP where (+) = undefined (*) = undefined negate = undefined signum = und

我想将我的Dataconstructor
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