标签: haskell
将以下内容键入GHC解释器不会产生错误:
let head' (x:_) = x
但是如果我们删除括号:
let head' x:_ = x
......我们获得:
模式中的解析错误:head'
为什么必须使用括号?
答案 0 :(得分:10)
在Haskell中,函数应用程序的优先级高于任何运算符,模式匹配反映了该函数。
因此,如果没有括号,head' x:_将被解析为(head' x):_,这在此上下文中没有意义,并导致错误。
head' x:_
(head' x):_