I have found a tricky issue with EXPT behaviour in different implementations.

Namely, evaluating (expt 0.0 0) yields:

1.0 in SBCL
1 in CLISP
1.0 in Lispworks.

(expt 0 0.0) results in:

1.0 in SBCL
error in CLISP
error in Lispworks

CLHS says that 0^0 = 1, and gives no details about float/integer combinations of these zeros.

So, what is the valid answer here? Is there some complex math theory behind all this?