From: "boris_stitnicky (Boris Stitnicky)" Date: 2012-11-12T11:50:52+09:00 Subject: [ruby-core:49240] [ruby-trunk - Feature #7328] Move ** operator precedence under unary + and - Issue #7328 has been updated by boris_stitnicky (Boris Stitnicky). I am pleased by this discussion and I thank Tom Sawyer for showing me that I am not alone who has feelings of surprise at -2 ** 2 behaviour. However, SO people finally found this link (http://www.ruby-forum.com/topic/87126#163398) in which Matz has already rationalized ** behaviour. For this reason, I rescind this feature request (which has already been changed to 'Rejected' status by the time I am writing this), and also for the reasons of stability as per phluid61. Just like Alex Muranov, I do dislike the current result of (-1) ** 0.5, which is (6.123233995736766e-17+1.0i), but that would be another issue, which I don't feel like opening at the moment. ---------------------------------------- Feature #7328: Move ** operator precedence under unary + and - https://bugs.ruby-lang.org/issues/7328#change-32798 Author: boris_stitnicky (Boris Stitnicky) Status: Rejected Priority: Normal Assignee: Category: Target version: I would like to ask to consider decreasing ** operator precedence just below that of -/+ unary operators. I know that other languages (eg. Python) have ** operator bind tighter than negation, but seeing -1 ** 0.5 give the result -1 and having to type parenthesis (-1) ** 0.5... Even if it's not worth changing, I'd like to hear this rationalized. I've asked about rationalization of this on SO, and nobody seems to know why this precedence is the way it is. -- http://bugs.ruby-lang.org/