gpt4 book ai didi

haskell - 为什么下面的布局在 Haskell 中能够正确解析?

转载 作者:行者123 更新时间:2023-12-02 12:04:23 24 4
gpt4 key购买 nike

我正在测试我对 Haskell 报告中的布局解析函数的理解 ( Here )

我可以理解:

  • 由于对齐良好,测试用例 1 将通过
  • 测试用例 2 将失败,因为“in a + b”被视为模块级别的新项目

但是,我无法理解为什么测试用例 3 会被正确解析。那么,问题:

为什么测试用例 3 会被正确解析?解析函数 L 的 LHS 中的哪个模式(参见 Here )与测试用例 3 匹配?

-- test case 1
f_1 = let a = 1
b = 2
in a + b

-- test case 2
f_2 = let a = 1
b = 2
in a + b

-- test case 3
f_3 = let a = 1
b = 2
in a + b

最佳答案

测试用例 3 匹配 parse-error(t) 规则。由于标记 inlet block 中此时不合法,因此在 in 之前插入 }结束它。

解析错误规则可能会令人困惑,但它也非常灵活;使用它你可以例如编写 Haskell 语句时几乎不使用任何显式 {}

关于haskell - 为什么下面的布局在 Haskell 中能够正确解析?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25340844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com