在这种情况下,为什么括号需要```?

时间:2016-03-29 15:39:32

标签: haskell

将以下内容键入GHC解释器不会产生错误:

let head' (x:_) = x

但是如果我们删除括号:

let head' x:_ = x

......我们获得:

  

模式中的解析错误:head'

为什么必须使用括号?

1 个答案:

答案 0 :(得分:10)

在Haskell中,函数应用程序的优先级高于任何运算符,模式匹配反映了该函数。

因此,如果没有括号,head' x:_将被解析为(head' x):_,这在此上下文中没有意义,并导致错误。