[ https://issues.apache.org/jira/browse/GROOVY-7428?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14578772#comment-14578772 ]
Paul King commented on GROOVY-7428: ----------------------------------- Looked at the approx 70 languages discussed in: http://rosettacode.org/wiki/Exponentiation_operator I could see Lua, Ruby and Python doing what Groovy used to do. The other mainstream languages in that list seem to do what Scala/Excel does - often because they basically don't have the operator or no way to provide a different precedence rather than necessarily an explicit attempt to follow Excel's lead. > Change precedence priority of ** compared to pre/post inc/dec and unary > plus/minus > ---------------------------------------------------------------------------------- > > Key: GROOVY-7428 > URL: https://issues.apache.org/jira/browse/GROOVY-7428 > Project: Groovy > Issue Type: Improvement > Reporter: Paul King > Assignee: Paul King > Labels: breaking > Fix For: 2.5.0-beta-1 > > > Currently the precedence order is: > {noformat} > level 1: post inc/dec > level 2: power > level 3: pre inc/dec > {noformat} > The original intention, I believe, was always: > {noformat} > level 1: post inc/dec > level 2: pre inc/dec > level 3: power > {noformat} > This leads to some unintuitive behavior: > while these are the same: > {code} > println (-9 + 2) // -7 > println ((-9) + 2) // -7 > {code} > these are different: > {code} > println (-9 ** 2) // -81 actually: println (-(9 ** 2)) > println ((-9) ** 2) // 81 > {code} > Similar anomalies occur between {{**}} and {{++}}/{{--}} -- This message was sent by Atlassian JIRA (v6.3.4#6332)