El 13/01/2012 21:29, bearophile escribió:
Bioinformatics, exploratory programing, simulations, data munging, hardening of
slow scripts, data visualization, data mining, optimization of some tasks,
faster routines for dynamic code written by other people, and more.
The problem is that often you don't have a "x", but a "long_named_variable", ...
> ...
Realistically, how often do you cube? It's extremely rare in my experience.
^^3 is not common.
I completely agree. The ^^ operator is a great addition in D even if it
is not used very often. I always found awkward the lack of such operator
in C-derived languages (some others use either ^ or **). And I was happy
to see in the DMD source how ^^2 and ^^3 are rewritten to avoid pow().
There are indeed applications that use exponentiation and whose
expressions using ^^ are much more readable and closer to the
mathematical notation.
e.g. sphere_volume = 4./3 * PI * radius^^3; // so much better
As for the original discussion on precedence I think the first example
is different to the others posted in that it uses a *number literal*.
in -x^^2, following standard math, it should be -(x^^2) (<0)
but the first example, -10^^2 is confusing because one might quickly see
the - sign as part of the number literal. As long as in D the - sign is
not part of the literal, the current behavior is fine. If you want it
the other way around write:
(-10)^^2