Article: Writing Julia style multiple dispatch code in D

data pulverizer via Digitalmars-d-announce digitalmars-d-announce at puremagic.com
Wed Aug 30 10:57:49 PDT 2017


On Wednesday, 30 August 2017 at 17:29:42 UTC, Jean-Louis Leroy 
wrote:
> On Wednesday, 30 August 2017 at 17:16:59 UTC, data pulverizer 
> wrote:
>>
>> p.p.s
>>
>> typeof(x[1]) # returns Cat
>>
>> so it isn't really polymorphism - the object is never 
>> converted to the "parent" type! Lol ... sorry for the 
>> confusion!
>
> Haha what I know of Julia is what wikipedia says. Confusing 
> indeed...

To be fair they say it is parametric polymorphism - dispatching 
basically template style, rather than subtyping polymorphism (OOP 
type), (more wikipedia 
https://en.wikipedia.org/wiki/Polymorphism_(computer_science)).

The reason I have never really been comfortable with sub-typing 
is that the polymorphic types are a black-box, my preference is 
certainly for parametric type polymorphism. The main disadvantage 
with parametric polymorphism in compiled languages is that array 
containers only operate under subtyping polymorphism. In the 
above Julia example the array container is essentially acting 
exactly like a compile-time dispatch (overloaded) function - the 
array is dispatching on a specific set of types defined by the 
abstract parent type. That kind of construct would be very 
desirable to me in D. The closest such thing you can have to that 
in D are tuples.


More information about the Digitalmars-d-announce mailing list