What makes multiple dispatch so special?

If there’s only one argument, then that’s not going to be anything more than single dispatch in any language — including Julia. Multiple dispatch is only “special” when there’s more than one argument. But really, the multiple part of multiple dispatch isn’t all that crucial to what makes Julia special… It can often be functionally emulated, and can often sometimes lead to combinatorial challenges.

The “special” thing in my view is the consistent definition of what a function means — its generic definition — and the ability to define these implementations of the function separately from your data (or the class definition). This only works if folks agree on what a function means, but it is why you can pass a number with uncertainty through a differential equation, for example.

12 Likes