Haskell 在这个上下文中,为什么需要带“:”的括号?
在GHC解释器中键入以下内容不会产生错误:Haskell 在这个上下文中,为什么需要带“:”的括号?,haskell,Haskell,在GHC解释器中键入以下内容不会产生错误: let head' (x:_) = x 但如果我们去掉括号: let head' x:_ = x …我们获得: 模式中的分析错误:head' 为什么需要括号?在Haskell中,函数应用程序的优先级高于任何运算符,模式匹配反映了这一点 因此,如果没有括号,head'x:\u被解析为(head'x):\u,这在本文中没有意义,并导致错误。,因为另一种模式将等于(head'x):\u(请记住,应用程序具有最高优先级)这只适用于数据构造函数或数据的可能副
let head' (x:_) = x
但如果我们去掉括号:
let head' x:_ = x
…我们获得:
模式中的分析错误:head'
为什么需要括号?在Haskell中,函数应用程序的优先级高于任何运算符,模式匹配反映了这一点
因此,如果没有括号,
head'x:\u
被解析为(head'x):\u
,这在本文中没有意义,并导致错误。,因为另一种模式将等于(head'x):\u
(请记住,应用程序具有最高优先级)这只适用于数据构造函数或数据的可能副本