如何解决解析 case 表达式中的错误 - haskell
我收到此代码的解析错误,但不确定原因,请帮助。我对 haskell 也很陌生,所以请原谅这个非常简单的问题。
intDiv a b = case a b of
b==0 -> Just(1)
_ -> Nothing
错误信息是:
Q66827743.hs:4:5: error: Parse error in pattern: b == 0
|
4 | b==0 -> Just(1)
| ^^^^
解决方法
您似乎将 case of
语法与保护语法混为一谈。
使用 case of
时,您不必“保护”布尔表达式;你匹配模式:
intDiv a b = case a b of
0 -> Just 1
_ -> Nothing
这个函数没有多大意义,但它可以编译。
如果你想保护布尔表达式,你也可以这样做,但语法不同:
intDiv a b | b == 0 = Just 1
intDiv _ _ = Nothing
这个变体也可以编译。
请注意,这两个变体不等价,因为它们没有相同的(推断)类型。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。