[Haskell-beginners] Offside rule for function arguments?
Daniel Fischer
daniel.is.fischer at web.de
Mon Aug 23 15:14:43 EDT 2010
On Monday 23 August 2010 21:02:50, Brandon S Allbery KF8NH wrote:
> On 8/23/10 14:56 , Isaac Dupree wrote:
> > On 08/23/10 02:33, John Smith wrote:
> >> Why doesn't Haskell allow something like this?
> >>
> >> fac 0 = 0
> >> 1 = 1
> >> x = x * fac (x-1)
> >>
> >> This would be clearer than repeating the function name each time, and
> >> follow the same pattern as guards and case.
> >
> > Layout is detected and parsed when and only when it is preceded by
> > 'where', 'let', 'do', or 'of'. So Haskell would have to have some
> > such keyword to
>
> I think the next question is "so how do guards work?"
Not by layout:
function :: Int -> Int -> Int -> Bool
function x y z | even x = y > z | odd y = even (z-x) | otherwise = even z
parses fine.
Guards are introduced by the token `|', they need not be aligned, you can
have multiple on the same line.
More information about the Beginners
mailing list