繁体   English   中英

GHC似乎打破了Haskell 2010的布局规则

[英]GHC seems to break Haskell 2010 layout rule

考虑一下Haskell中的以下代码:

f = y
  where { y = t where t = 2 }

其预期含义是

f = y
  where
    y = t
      where
        t = 2

按照 GHC 8.4.4的要求进行编译 但是,根据Haskell 2010 Language Report的10.3节,它看起来不像是适当的行为。 让我解释。 此处描述的预处理将上面的代码片段转换为:

{1} f = y <3> where { y = t where {23} t = 2 }

将其应用于报表中的函数L在最后一个大括号处产生解析错误} 明确地,将符号{23} (自第二个where之后不跟{插入)插入,该符号被解释为级别23的隐式开放括号,并且L报告解析错误,以便我们使用显式关闭该隐式开放括号。特写括号}

我确实希望我犯了一些错误,但如果不是这样,是否有任何有关这种行为和规范冲突的文件?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM