我正在尝试嵌套一对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
给我错误:“表达式中的语法错误(意外的`=')”
答案 0 :(得分:19)
在第二个示例中,z = ...
未与y = ...
对齐。在let
块中,每个定义都必须对齐。
我怀疑你是否缩进了制表符,并让你的编辑器设置为显示少于8个空格的制表符,使它看起来像是与你对齐的。您应该用空格替换选项卡,最好将编辑器设置为将标签扩展到空格中,以避免将来出现此类问题。