Comment on Dynamic languages are static languagesparentComments−effn15yOverloading on return type is fundamentally impossible in dynamic languages, since they dispatch on values, and the return value can not be known before the function is called.−bad_user15yOh come on, all you need to do is to (OPTIONALLY) tag the function with the return type.And it's still a dynamic type system ;)−shasta15yWell it's not impossible. You could run them all and then decide which result to use. :)−effn15yThat doesn't work either, since then you will have more than one result. Which one will you dispatch on?−shasta15yPresumably, you'll have some rules that determine which is the best match and then error if it's ambiguous - just like the static case
Comments
Overloading on return type is fundamentally impossible in dynamic languages, since they dispatch on values, and the return value can not be known before the function is called.
Oh come on, all you need to do is to (OPTIONALLY) tag the function with the return type.
And it's still a dynamic type system ;)
Well it's not impossible. You could run them all and then decide which result to use. :)
That doesn't work either, since then you will have more than one result. Which one will you dispatch on?
Presumably, you'll have some rules that determine which is the best match and then error if it's ambiguous - just like the static case