我遇到了一种情况,我想在运算符上进行模式匹配。然而,在GHC中,这会引发一个“Pattern match(es) are overlapped”的错误。我无法理解为什么会出现这种情况。是否不允许在运算符上进行模式匹配?我认为,由于将运算符符号括在括号中将其转换为标识符,所以这应该是可以工作的。
test :: (Integer -> Integer -> Integer) -> String
test (+) = "plus"
test (-) = "minus"
test _ = "other"
我可以通过其他方式实现我的目标,只是我很好奇为什么这种方法不起作用。