3 ms·
How, the functions might support dynamic dispatch or be overloaded based on types. There's nothing that prevents me from implementing all of plus(Int, Int
by joshuamorton 3y ago
How, the functions might support dynamic dispatch or be overloaded based on types.
There's nothing that prevents me from implementing all of
plus(Int, Int)
plus(Int, Vec)
plus(Int, Mat)
plus(Vec, Vec)
plus(Vec, Mat)
plus(Mat, Mat)
and to know which `plus` is being dispatched, you need to know the types of both arguments, exactly the same as if `plus` is named `__add__` in python or `operator+` in C++.
- throwaway894345 3y agoYes, overloading is bad (operator overloading is a kind of overloading).
- joshuamorton 3y agoHow do you do math without overloading? I have ints, floats, bignums, vectors, matrices, complex numbers, and potentially fractions. You want every operation to have a distinctly named version for each other numeric type? Maybe you can reduce some of those, but you can't really have interfaces without some overloading.