There's still the issue of exponentiation being right-associative. Unless ** 
becomes an operator which behaves differently as to how it would in a high 
school maths class, we're at an impasse.

That said, ^ is usually the operator used for exponentiation outside 
programming languages when you need to express an equation in text. It could be 
made explicit that ** is a variant on 'exponentiation', but then maybe things 
are deviating from being useful.

Thomas

> On 27 Aug 2015, at 3:28 AM, Brendan Eich <bren...@mozilla.org> wrote:
> 
> Yehuda Katz cited an acronym taught when he was a wee lad learning algebra: 
> PEMDAS (Parentheses, Exponentiation, Multiplication/Dviistion, 
> Addition/Subtraction). Who else learned this?
> 
> There's nothing sacrosanct about binary precedence being generally lower than 
> unary. Consider the property access operators in JS. But the precedent to 
> which all cited languages bow is Math and that's what programmers (mostly) 
> study. I think you are making too much out of the local -x ** y case in light 
> of this global argument.
> 
> /be
> 
> Mark S. Miller wrote:
>> I don't get it. The conflict between
>> 
>> * the history of ** in other languages,
>> * the general pattern that unary binds tighter than binary
>> 
>> seems unresolvable. By the first bullet, -2 ** 2 would be -4. By the second, 
>> it would be 4. Either answer will surprise too many programmers. By 
>> contrast, no one is confused by either -Math.pow(2, 2) or Math.pow(-2, 2).
> _______________________________________________
> es-discuss mailing list
> es-discuss@mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to