then, why are we allowed to rebind f in a let clause :) -- Hal Daume III
"Computer science is no more about computers | [EMAIL PROTECTED] than astronomy is about telescopes." -Dijkstra | www.isi.edu/~hdaume On Fri, 1 Feb 2002, David Feuer wrote: > Hal Daume III wondered: > > f x = f' 0 x > > where f' acc [] = acc > > f acc (x:xs) = f' (x+acc) xs > > > why are we allowed to rebind f in the where clause? > this is clearly a > > typo (in this instance) but it seems really strange to > me that this would > > be allowed. > > Because this definition is equivalent to > > f x = let f' acc [] = acc > f acc (x:xs) = f' (x+acc) xs > in f' 0 x > > More generally (if I am not mistaken...) > > g p1 q1 ... | c1 = ... > | c2 = ... > | .... > where <bindings> > > is the same as > > g p1 q1 ... = let <bindings> > in case () of > _ | c1 -> ... > | c2 -> ... > > This message has been brought to you by the letter alpha and the number pi. > > > _______________________________________________ > Haskell mailing list > [EMAIL PROTECTED] > http://www.haskell.org/mailman/listinfo/haskell > _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell