Jared Updike wrote:
> -4^2 is not the same whether parsed as
>> (-4)^2 or -(4^2) (the correct version)
>> Basically, before someone argues this with me,
>> -4^2 should parse the same as
>> - 4^2 which should be the same thing as
>> 0 - 4^2
I'd argue that -4^2 should parse as (-4)^2 in the same way that:
f x `op` y === (f x) `op` y
I'd also argue that in maths the necessary brackets are implied by the
superscripting syntax, and for programming, as long as the editor does basic
highlighting of literals it would be very clear that -4 is a single lexeme.
Stefan Monnier wrote:
>> I'd have thought it would have been simpler to just make the rule
>> that -2 (no spaces between '-' and '2') would be a single lexeme,
>> But then x-2 won't mean "subtract 2 from x" but "call x with arg -2".
Literal highlighting in the editor would make it clear that x-2 === x (-2).
I think a basic issue is that at the moment it is strange that non-negative
numbers can be specified as literals but negative numbers can't - they can
only get in through the "back door" of evaluation - which just doesn't seem
right.
It's kind of like a Monty Python'esque sketch of a lecture theatre full of
mathematicians where every attempt to mention a negative number is replaced
by the word "apple"... ;-)
Regards, Brian.
--
Logic empowers us and Love gives us purpose.
Yet still phantoms restless for eras long past,
congealed in the present in unthought forms,
strive mightily unseen to destroy us.
http://www.metamilk.com