
Am Mittwoch, 15. Oktober 2008 13:39 schrieb Ramaswamy, Vivek:
Hello All~
I have just started with Haskell, and I must confess; I am in love with it. However one area that I am really confused about is indentation. Lets take a look at if-else if- else block.
The way I understand it: {------} if something then do something 1 something2 else if nothing then do something3 something4 else do different {-------} The code above gives out an error. I have been programming in python and the above appears fine. But it does not work. What works is: if something then do something1 something2 else if then do something3 something4 else do different
I find the above scheme extremely confusing. I tried going to:
Not for long, it'll become natural pretty fast.
http://en.wikibooks.org/wiki/Programming:Haskell_indentation after reading I am even more confused. Can somebody please explain how the Haskell indentation works?
The else-if and else seem to be aligning up with "then". They should be aligning with "If" in my opinion.
The "then ..." and the "else ..." branches are both part of the if-expression, so they have to be indented further than the "if". Aligning something with the "if" ends the expression, so if the "else" is aligned with the "if", there's an incomplete if-expression and something which should be an expression but isn't because it begins with "else". The Layout rule is explained in the report: http://haskell.org/onlinereport/ informally in section 2.7, formally in section 9.3, perhaps that helps.
Thanks in advance.
Regards -Vivek Ramaswamy-