Issue #7336 has been updated by trans (Thomas Sawyer).


=begin
@judofyr As Alexey pointed out that was a mistake on my part. Yes, it should be:

  10.meters**2  => 100m^2

@nobu LOL! I would if I could! Actually, I've thought more than once that progress in keyboard input totally stagnated in the late 80s. Why can't we type superscripts and subscripts and make good use of it!
=end

----------------------------------------
Feature #7336: Flexiable OPerator Precedence
https://bugs.ruby-lang.org/issues/7336#change-33406

Author: trans (Thomas Sawyer)
Status: Rejected
Priority: Normal
Assignee: 
Category: core
Target version: next minor


=begin
If Ruby classes could provide some means for redefining operator precedence, it would provide the flexibility useful to some DSL use-cases.

My particular application, for instance, is in an SI units system gem that could use `^` to mean power of the unit (e.g. 1.meter^3 would mean cubic meters). But to do that right the operator needs a higher precedence. I don't expect it to be something commonly used, obviously, but it certain use cases like mine it is practically essential.

I first suggested that (({#^})) be given a higher precedence and XOR get another operator in #6678. I was not surprised that it was rejected, but I figured it was the proper first step, before proposing this much broader feature request.

As for notation, I suppose the simplest means if to create class method that can move the precedence to a position relative to another, e.g.

    class Unit
      precedence :^, :**

Which is to say, move (({#^})) operator to a precedence above (({#**})).
=end



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