Version 18 of **

Updated 2009-05-27 16:58:57 by dgp

expr "raise to power" operator, similar to pow function

Returns an integer value if both arguments are integers, and double-precision floating-point otherwise.

The left operand may be any integer from Tcl's unlimited integer range.

The right operand is limited to a max integer value of 268435455 (0xfffffff) (28 bits). (Unless the left operand is -1, 0, or 1, so that the answer is trivial).

Expect to wait a long while for [expr 2**0xfffffff] to return.


Precedence

During early 2009, a thread broke out in the comp.lang.tcl usenet group discussing the observation that Tcl's calculation for

puts [expr {-2**2}]

surprised someone who was expecting that to mean

puts [expr {-(2**2)}

while Tcl's operator precedence rules cause it to mean

puts [expr {(-2)**2}