Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.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)中的类型错误_Haskell_Functional Programming - Fatal编程技术网

显式类型绑定(Haskell)中的类型错误

显式类型绑定(Haskell)中的类型错误,haskell,functional-programming,Haskell,Functional Programming,我正在编写一个非常简单的函数,它通过将某个字符组合替换为另一个字符来转换字符串。(如“ab”至“a”) 我是Haskell中的noob,我得到一个错误:“显式类型绑定中的类型错误” 你能告诉我有什么问题吗? 代码: 谢谢大家! 在最后的transform模式中,当“a”和“b”应该是字符时,使用字符串文字 transform::String->String 变换[]=[] 变换[x]=[x] 变换(x:y:xs) |x='a'&&y='b'='a++(变换xs) |x='b'&&y='a'='b

我正在编写一个非常简单的函数,它通过将某个字符组合替换为另一个字符来转换字符串。(如“ab”至“a”) 我是Haskell中的noob,我得到一个错误:“显式类型绑定中的类型错误”

你能告诉我有什么问题吗? 代码:


谢谢大家!

在最后的
transform
模式中,当“a”和“b”应该是字符时,使用字符串文字

transform::String->String
变换[]=[]
变换[x]=[x]
变换(x:y:xs)
|x='a'&&y='b'='a++(变换xs)
|x='b'&&y='a'='b++(变换xs)
|x=='b'&&y='b'='a++(变换xs)
|x='a'&&y='a'='aaa++(转换xs)
另外,第二个转换定义中有一个bug,您需要将
x
括在括号中,因为它返回的是字符列表


(您可能还希望有一个最终的模式匹配来处理任何其他输入,因为如果对“zzz”这样的字符串运行此命令,您将得到一个非穷举错误)

@zakyggaps,因此我必须将其更改为transform[x]=[x]?我这样做了,我得到了另一个错误:“在应用程序中键入error”@zakyggaps对不起,我认为这是一个很容易的问题,而且这个错误很容易被熟悉Haskell的人发现。非常讽刺:)我真诚地推荐一些功能更丰富的Haskell实现和编辑器,如中所述,而不是您目前拥有的。当没有一个熟悉哈斯克尔的人在附近时,这将是很大的帮助。我很抱歉,如果我有冒犯或离题。
transform :: String -> String
transform [] = []
transform [x] = x
transform (x:y:xs)
        | x == "a" && y == "b" = "a" ++ (transform xs)
        | x == "b" && y == "a" = "b" ++ (transform xs)
        | x == "b" && y == "b" = "a" ++ (transform xs)
        | x == "a" && y == "a" = "aaa" ++ (transform xs)