In the 'proposed syntax change' thread, Don mentioned that an exponentiation operator is sorely missing from D. I couldn't agree more.

Daniel Keep has proposed the syntax

  a*^b

while my suggestion was

  a^^b

Neither of the natural candidates, a^b and a**b, are an option, as they are, respectively, already taken and ambiguous.

"Why do we need this?" you say. "Isn't pow(a,b) good enough?" And yes, pow(a,b) is just as good as mul(a,b) or div(a,b), but we don't use those, do we? Exponentiation is a very common mathematical operation that deserves its own symbol. Besides, bearophile has pointed out several optimisations that the compiler can/must perform on exponential expressions.

He also proposed that the overload be called opPower.

What do you think?

-Lars

Reply via email to