Giovanni Bajo wrote: >>> @overloaded >>> def sqrt(value): >>> raise TypeError("Cannot take square root of %s" % >>> type(value).__name__) >>> >>> @sqrt.overload >>> def sqrt_float(value : float): >>> return math.sqrt(value) >>> >> So where would that sqrt function live? > > "math" would be fine for all builtin types. For other types, imported from > modules, such as numpy, they could add their overload to math.sqrt at > import-time.
That wouldn't quite work: sqrt(float) would cause a stack overflow for calling itself. In any case, I still wonder whether these functions should be unified when they have different semantics (e.g. when passing negative ints or floats to math.sqrt vs. cmath.sqrt). Regards, Martin _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com