Negation

S. Doaitse Swierstra doaitse at cs.uu.nl
Wed Feb 10 07:25:41 EST 2010


On 10 feb 2010, at 10:40, Sebastian Fischer wrote:

>
> On Feb 9, 2010, at 10:43 PM, S. Doaitse Swierstra wrote:
>
>> -- but if we now unfold the definition of one we get a parser error  
>> in GHC
>> increment' = ( let x=1 in x  +  )
>>
>> The GHC and Hugs parsers are trying so hard to adhere to the meta  
>> rule that bodies of let-expressions
>> extend as far as possible when needed in order to avoid ambiguity,  
>> that they even apply that rule when there is no ambiguity;
>> here we have  only a single possible parse, i.e. interpreting the  
>> offending expression as ((let x = 1 in ) +).
>
> Despite the fact that there is a typo (second  x  is missing), I can  
> think of two possible parses. Actually, my mental parser produced  
> the second one:
>
>   ((let x=1 in x)+)
>   let x=1 in (x+)
>
> The Haskell report may exclude my mental parse because operator  
> sections need to be parenthesised.

Indeed, but it is not "may exclude", but "excludes".


>
> Or are you arguing that in your example different possible parses  
> have the same semantics for an arguably obvious reason and that this  
> fact is relevant?

No,

Doaitse


>
> Sebastian
>
>
> -- 
> Underestimating the novelty of the future is a time-honored tradition.
> (D.G.)
>
>


More information about the Haskell-prime mailing list