在 prolog 中,我们可以执行以下操作:
myFunction a (a:xs) = ...
也就是说,当
myFunction
的第一个参数与第二个参数中的列表的第一项相同,此函数将计算为 ...
.我现在的问题是......如何在 Haskell 中完成类似的事情?
我认为 Prolog 的模式匹配比 Haskell 的更具表现力。我一直在尝试在 Haskell 中编写代码,但遇到了麻烦——要么我使用了无效的语法,要么上述技巧根本行不通。
最佳答案
Haskell 不做这种“变量匹配”。你必须明确地把 guard 放在:
myFunction a (x:xs)
| x == a = ...
关于haskell - Haskell 中的模式匹配等效变量,例如 Prolog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4092962/