>
> >>> factorial(23) == factorial(23.0)
> False
Sure, but if simple type dispatch (generic functions) was built into the
language, people would be perfectly comfortable with the idea that two
functions with the same name but accepting different types are different
functions that might return different values.
But factorial—to essentially everyone—means FACTORIAL. A function defined by simple recursion on integers.
It DOES NOT mean "the actual factorial functions on the integers, but separately dispatch to (ONE OF) the proposed analytic continuations of the factorial function when given floating point arguments."
Besides, what analytic continuation will we use for complex numbers?!... clearly a proposal not covering the complex plain is wrong! :-)
The gamma function is already available. If you want the gamma function, just use that!