* * * Ketil Malde <[EMAIL PROTECTED]> wrote:
> > runRandom last max num
> > | num > 1 = runRandom (fst new) max (num-1)
> > | otherwise = snd new
>
> What's the difference between the pipe-syntax, and a case statement,
> i.e. writing the function as
>
> runRandom last max num = case num of
> 1 -> runRandom ....
> otherwise -> snd new
There is no difference. The 'pipe-syntax' (or pattern guards) gets
desugared (by the pattern matching compiler) to case statements i.e.:
runRandom = \ last max num.case (num > 1) of
True -> runRandom (fst new) max (num-1)
False -> snd new
For a more detailed discussion see SPJ's book, Augustsson original
paper, or M Pettersen't thesis (LNCS 1549).
HTH,
--laszlo
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell