I'm trying to nest a couple let statements, but I'm getting syntax errors that don't make sense to me. I'm really new to Haskell programming so I'm sure it's something I just don't understand (probably having to do with the spacing). I understand that let and in must be in the same column.
Why is it that:
aaa = let y = 1+2
z = 4+6
in y+z
Works perfectly fine, whereas
aaa = let y = 1+2
z = 4+6
in let f = 3
e = 3
in e+f
gives me the error: "Syntax error in expression (unexpected `=')"
In the second example, the z = ...
isn't aligned with the y = ...
. In a let
block, every definition has to be aligned.
I suspect you're indenting with tab characters, and have your editor set to display tabs as less than 8 spaces, making it look like it's aligned to you. You should replace the tab with spaces, and preferably set your editor to expand tabs into spaces to avoid problems like this in the future.