Issue #7331 has been updated by stomar (Marcus Stollsteimer).


Generally, adding "wrong" syntax just for consistency is IMO no option.

But, looking over the thread again, I don't see your problem in the first place:
- 2 * 3 means (-1) * 2 * 3 = (- 2) * 3 = - (2 * 3), which all results in -6, so what's wrong with that?
Furthermore, -2 * -2 is mathematically invalid syntax, you would have to write -2 * (-2),
but here also there is no ambiguity involved, - (2 * (-2)) = 4 = (-2) * (-2).

The only thing that seems worth mentioning is that Ruby allows the shortcut 2 * - 3 for 2 * (-3).

----------------------------------------
Bug #7331: Set the precedence of unary `-` equal to the precedence `-`, same for `+`
https://bugs.ruby-lang.org/issues/7331#change-33418

Author: alexeymuranov (Alexey Muranov)
Status: Rejected
Priority: Normal
Assignee: 
Category: core
Target version: 
ruby -v: 1.9.3


=begin
I will not be surprised if this proposal is rejected, because the compatibility would be a mess, but i feel i need to start a discussion.  This continues the discussion in #7328.

To the best of my knowledge, in mathematics the unary minus has the same precedence as the binary one.  However, in the expression

  - a * b

Ruby computes first (({-a})), and then the product.  This means that if i want (for whatever reason) to compute the expression in the natural order, i have to put the parentheses:

  - (a * b)

which looks very strange to me.  I would consider this a bug.
=end



-- 
http://bugs.ruby-lang.org/