<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.0.6620.1">
<TITLE> Haskell newbie indentation query.</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">Hello All~</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">I have just started with Haskell, and I must confess; I am in love with it.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">However one area that I am really confused about is indentation.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">Lets take a look at if-else if- else block.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">The way I understand it:</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">{------}</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">if something</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">&nbsp;then do </FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">&nbsp; something 1</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">&nbsp; something2</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">else if nothing</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">&nbsp;then do </FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">&nbsp; something3</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">&nbsp; something4</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">else do </FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">&nbsp;different</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">{-------}</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">The code above gives out an error.&nbsp; I have been programming in python and the above appears fine.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">But it does not work.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">What works is: </FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">if something</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">&nbsp;then do</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">&nbsp; something1</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">&nbsp; something2</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">&nbsp; else if</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">&nbsp;&nbsp; then do</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">&nbsp;&nbsp;&nbsp; something3</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">&nbsp;&nbsp;&nbsp; something4</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">&nbsp;&nbsp;&nbsp; else do</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">&nbsp;&nbsp;&nbsp;&nbsp; different</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">I find the above scheme extremely confusing. I tried going to: </FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><A HREF="http://en.wikibooks.org/wiki/Programming:Haskell_indentation"><SPAN LANG="en-us"><U><FONT COLOR="#0000FF" FACE="Avenir LT Std 55 Roman">http://en.wikibooks.org/wiki/Programming:Haskell_indentation</FONT></U></SPAN><SPAN LANG="en-us"></SPAN></A><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman"> after reading I am even more confused.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">Can somebody please explain how the Haskell indentation works?</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">The else-if and else seem to be aligning up with &#8220;then&#8221;. They should be aligning with &#8220;If&#8221; in my opinion.</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT FACE="Avenir LT Std 55 Roman">Thanks in advance.</FONT></SPAN></P>
<BR>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"><FONT SIZE=2 FACE="Trebuchet MS">Regards</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"><FONT SIZE=2 FACE="Trebuchet MS">-Vivek Ramaswamy-</FONT></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN><SPAN LANG="en-us"></SPAN></P>

<P DIR=LTR><SPAN LANG="en-us"></SPAN></P>

</BODY>
</HTML>