let-where difference
Hal Daume III
hdaume at ISI.EDU
Mon Dec 22 07:15:32 EST 2003
Let is part of an expression, whereas where is part of a declaration.
Your first program should be rejected, since lists can only be made up of
expressions. That is, the 'where' in example 1 *must* come after the
entire expression [ 1, 2, ... ] so that it can be part of the declaration
of f. OTOH, the let/in in example 2 is fine in situ, because it is
part of an epxression, which is allowed for let/in constructs.
On Mon, 22 Dec 2003, Serge D. Mechveliani wrote:
> The program
> f = [ 1,
> 2,
> (a+b where a = 1
> b = 2
> )
> ]
> is qualified by some compilers as a wrong syntax.
> And
> f = [ 1,
> 2,
> (let a = 1
> b = 2
> in a+b
> )
> ]
> is accepted.
> What may be the reason for such difference,
> is this a `bug' in Haskell-98 ?
>
> (Usually `let' and `where' are moved out of such a list construct,
> but for a large list with non-trivial expressions for the members,
> it may be natural to remain them).
>
> Thank you in advance for the explanation.
> Copy, please, the answer to mechvel at botik.ru
>
> -----------------
> Serge Mechveliani
> mechvel at botik.ru
>
>
>
>
> _______________________________________________
> Haskell mailing list
> Haskell at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell
>
--
Hal Daume III | hdaume at isi.edu
"Arrest this man, he talks in maths." | www.isi.edu/~hdaume
More information about the Haskell
mailing list