Should ^^ (opPow) be left- or right-associative?
Tim Matthews
tim.matthews7 at gmail.com
Sat Dec 5 20:31:57 PST 2009
Don wrote:
> bearophile wrote:
>> KennyTM~:
>>> But the mathematical convention is a^b^c == a^(b^c).
>>> Languages which the power operator is right-associative (3^3^3==7e12):
>>> - Python, Haskell, Ruby, Perl, Mathematica, Bash.
>>
>> Doing things as in mathematical convention, Mathematica and Python
>> sounds better.
>> This was just the release V.0.1 of the built-in pow, it needs several
>> improvements :-)
>>
>> Bye,
>> bearophile
>
> Fortran too.
> Here's a link from the TCL language, with a nice explanation of the
> rationale for choosing right associativity.
>
> http://www.tcl.tk/cgi-bin/tct/tip/274.html
Don I thought you were the one who created the patch
http://d.puremagic.com/issues/show_bug.cgi?id=3481
What was your reason for the choice of left associativity? To cite
wikipedia:
http://en.wikipedia.org/wiki/Associativity#Notation_for_non-associative_operations
"x^{y^z}=x^{(y^z)}.\,
The reason exponentiation is right-associative is that a repeated
left-associative exponentiation operation would be less useful. Multiple
appearances could (and would) be rewritten with multiplication:
(x^y)^z=x^{(yz)}.\,"
More information about the Digitalmars-d
mailing list