Why 0^0 = 1?



0^0 is defined in Julia, and equals 1. Mathematically 0^0 is undefined.I think other programming languages leave it undefined, although Python sets 0^0 = 0 (which is insane in my opinion).

To me it makes sense to make 0^0 = 1 (it turns out to be useful in some code I am writing right now, preventing some ifs and making things easier).

But I was wondering what other people think about this. Why was this approach selected in Julia?


Yes but there are some reasons to take 1 as value:

No, in Python 0 raised to power 0 is 1:

>>> 0**0

Look to the code in base/intfuncs.jl. Basically, if the exponent is 0 the returned value is always 1.


Just as an additional curious note, here’s a nice reference where Knuth argues why 0^0 should be 1: