【发布时间】:2012-04-26 06:41:22
【问题描述】:
我正在尝试嵌套几个 let 语句,但我遇到了对我来说没有意义的语法错误。我对 Haskell 编程真的很陌生,所以我确定这是我不明白的事情(可能与间距有关)。我知道 let 和 in 必须在同一列。
为什么会这样:
aaa = let y = 1+2
z = 4+6
in y+z
工作得很好,而
aaa = let y = 1+2
z = 4+6
in let f = 3
e = 3
in e+f
给我错误:“表达式中的语法错误(意外的 `=')”
【问题讨论】:
-
离题了,但是 let 表达式默认是递归绑定的,所以很少需要在 let 中嵌套 let。
-
John L 的意思是,你可以将内部和外部的 let 语句组合成一个语句。
-
对,我明白,这是出于教育目的。我试图在不参考手册的情况下弄清楚该语言是静态范围还是动态范围。