我正在测试我对Haskell报告中的布局解析函数的理解(Here)
我能理解:
但是,我无法理解为什么测试用例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
答案 0 :(得分:2)
测试用例3与解析错误(t)规则匹配。由于in
块中的令牌let
不合法,因此会在}
之前插入in
以结束它。
解析错误规则可能令人困惑,但它也非常灵活;使用它你可以例如写Haskell单行,很少有任何明确的{}
。