我想在Haskell使用下面的代码/功能:为什么模式匹配不在Haskell的封面列表中?
test :: String -> String -> Bool
test (x:xs) (x:ys) = True
test _ _ = False
这应该检查是否两份名单完全相同的元素开始。
但这不起作用。
我的编译器说:Conflicting definitions for x
我认为这样的模式匹配必须在功能语言中工作。我刚刚和Prolog合作过,我很确定它在那里工作:/
这是不是在Haskell中实现,或者是我的语法错误?
当列表包含无法比较的项目(例如函数)时,会产生隐式比较的问题。允许这种隐式比较可能(可能)使语法不太清晰。虽然存在与数字常量匹配的奇怪事物,它使用整数和比较。 – Laar