[Hugs-users] formatting and guarded expressions

Malcolm Wallace Malcolm.Wallace at cs.york.ac.uk
Thu Mar 23 10:20:40 EST 2006


Wittie <lwittie at bucknell.edu> wrote:

> >fact n
> >     | n == 0 = 1
> >     | otherwise = n * (fact(n-1))
> 
> Hugs complains about an unexpected ;
> 
> Sometimes code after a guarded expression fixes the problem. We've
> tried putting the | up against the > or underneath the parameter. The
> same code seems to work for some students but not for others.

I would guess that it fails when there is a mixture of tabs and spaces
before the different guards.  Haskell insists that tabs are 8 chars
wide, but many editors are configured to display tabs as 2 or 4 chars
wide.  Hence, code that looks in correct vertical alignment might well
be indented oddly as far as the compiler is concerned.

Regards,
    Malcolm


More information about the Hugs-Users mailing list