comp.lang.ada
 help / color / mirror / Atom feed
From: antispam@math.uni.wroc.pl
Subject: Re: Multiple dispatch in Julia
Date: Thu, 12 Nov 2020 17:56:39 +0000 (UTC)	[thread overview]
Message-ID: <rojt0n$cro$1@z-news.wcss.wroc.pl> (raw)
In-Reply-To: roipd1$7vr$1@gioia.aioe.org

Dmitry A. Kazakov <mailbox@dmitry-kazakov.de> wrote:
> On 12/11/2020 08:12, Jerry wrote:
> 
> > I'm curious to know what Ada folks think about this discussion about Julia, especially the extended comment about multiple dispatch.
> 
> What discussion?
> 
> -----------
> Like other dynamic languages claiming that they have multiple dispatch, 
> Julia deploys run-time type matching for the target method. This is all 
> you need to know.
> 
> Because the most important requirement of properly designed dispatch 
> (multiple or not) is:
> 
>    dispatch may never fail.

Hmm, AFAICS typical implementation of dispatch in dynamic language
may raise error "no such method".  If error is undesired one can
add catch all method or catch errors.  Do you think that all
such implementations are improperly designed?
 
> It is very difficult to satisfy already with multi-methods. BTW, I am 
> not sure, but it seems that Julia has only multi-methods and no full 
> multiple dispatch.
> 
> Full multiple-dispatch is even harder to approach.
> 
> P.S. Multi-method dispatch is something like X + Y. Both arguments and 
> the result are from the same type hierarchy. Full multiple dispatch is 
> like Print (X, Y). Arguments are from different hierarchies.

I am not sure what you want to say here.  '+' is just funny name,
why it should be different than 'Print'?  Concerning hierarchies,
Sevaral languages insit on "top" type, so there is only one
hierarchy.  Other languages have several different toplevel
types, consequently there are different hierarchies originating
at different toplevel types.  I do not see why single hierarchy
versus multiple hierarchies should decide if dispatch is
multiple dispatch.

In language I use there is type for equations.  One can add
scalar to equation or add two equations.  This language
uses overloading, but if another language implemented this
via dipatch I would call it multiple dispatch.  OTOH
this language has single argument 'print'...

> P.P.S. Ada in fact has multi-method dispatch. It is defined so that when 
> tags of controlling arguments are different you get an exception ARM 
> 3.9.2 (16). Which, yes, violates the principle above, but nobody ever 
> pretended that Ada had multiple dispatch in the first place.

Maybe you talk about multi-method when types of arguments (or rather
"dispatching arguments") are all equal?  That would be rather
unconventional definition of multi-method.

-- 
                              Waldek Hebisch

  parent reply	other threads:[~2020-11-12 17:56 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-12  7:12 Multiple dispatch in Julia Jerry
2020-11-12  7:48 ` Dmitry A. Kazakov
2020-11-12  8:55   ` Jerry
2020-11-12 10:27     ` Dmitry A. Kazakov
2020-11-12 17:56   ` antispam [this message]
2020-11-12 18:28     ` Dmitry A. Kazakov
2020-11-12 21:22       ` antispam
2020-11-13  7:49         ` Dmitry A. Kazakov
2020-11-13 12:55           ` antispam
2020-11-13 14:59             ` Dmitry A. Kazakov
2020-11-15 12:43               ` antispam
2020-11-15 13:37                 ` Dmitry A. Kazakov
2020-11-15 14:32                   ` antispam
2020-11-15 16:28                     ` Dmitry A. Kazakov
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox