Haskell:模式中的解析错误
谁愿意告诉我这段代码有什么问题(语法上)?
-- merge two sorted lists
mergeX [] b res = b ++ res
mergeX a [] res = a ++ res
mergeX a:as b:bs res
| a > b = mergeX as b:bs a:res
| otherwise = mergeX a:as bs b:res
口译员:
模式解析错误:mergeX
Who likes to tell me what is wrong with this code (syntactically)?
-- merge two sorted lists
mergeX [] b res = b ++ res
mergeX a [] res = a ++ res
mergeX a:as b:bs res
| a > b = mergeX as b:bs a:res
| otherwise = mergeX a:as bs b:res
Interpreter:
Parse error in pattern: mergeX
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你需要一些括号:
原因是因为
:
的优先级低于函数应用,所以mergeX a:as b:bs res
将被解析为:这是一个错误。
You need some parenthesis:
The reason is because
:
has a lower precedence than function application, somergeX a:as b:bs res
will be parsed as:which is an error.
您需要将构造函数模式(或者它们的调用方式)放在括号中。
You need to put constructor patterns (or however they are called) in parantheses.