Talk:Exponentiation order

From Rosetta Code
Revision as of 03:56, 19 March 2014 by rosettacode>Gerard Schildberger (→‎Functions: added comments about the "right way".)

Functions

So it has to be an operator? A "pow" function is not allowed? --Mwn3d (talk) 19:00, 18 March 2014 (UTC)

No, and then no.   Er, I mean, it doesn't have to be, and yes, POW is allowed if there isn't an operator for exponentiation.   I have no qualms about including the POW function in any case.   But a function has no misinterpretation of what order the exponentiation is in, as in   pow(x,y).   Of course, you could write   pow(x, pow(y,z))   (or something similar, depending on you or your language interpret the operator) to show this task's intention, but there is no ambiguity in function calls.   Whereas,   5**3**2   is swimming with vagueness. -- Gerard Schildberger (talk) 19:09, 18 March 2014 (UTC)
Why? Somehow people don't find "a - b - c" swimming in vagueness. And in the languages I know, if there's an pow operator, 5**3**2 is always interpreted as 5**(3**2), just like in maths. --Ledrug (talk) 03:31, 19 March 2014 (UTC)
I also don't believe that   a-b-c   is vague, but then, subtraction isn't what is being discussed.   The why is simple to explain:   because not all computer languages treat multiple (or chained) exponentiation the same.   5**3**2   is not always interpreted as   5**(3**2).   If that expression would be treated universally the same, there wouldn't be a need for this Rosetta Code task.   I'm not going to pontificate whether or not which manner of evaluation is correct; the main thing I'm interested is how various computer languages evaluate the expression, and what value is produced.   It's not a matter of doing it "the right way", the way that a computer language does it, is the way it is.   To quote my niece, it is what it is. -- Gerard Schildberger (talk) 03:56, 19 March 2014 (UTC)