From: dmitry6243@my-deja.com
Subject: Re: Multiple dispatch (was Re: Parameter Modes, In In Out and Out
Date: Fri, 02 Feb 2001 13:49:22 GMT
Date: 2001-02-02T13:49:22+00:00 [thread overview]
Message-ID: <95edt0$sed$1@nnrp1.deja.com> (raw)
In-Reply-To: 95dm8r$a9a$1@nnrp1.deja.com
In article <95dm8r$a9a$1@nnrp1.deja.com>,
mark_lundquist@my-deja.com wrote:
> If they expected triple dispatch, then they don't know Ada :-)
Well, in fact Ada does have "MD", defined as follows. If all tags are
same, then dispatch happens as it is expected. If the tags differ the
call is "dispatched" to a "method" that raises an exception. (Quotation
marks are placed for purists (:-)). Run-time exception is an obvious
problem and I can easily imagine applications where such behaviour
would be unacceptable.
> Maybe they really expected covariance, in which case they should have
> used a generic instead.
>
> Another possibility is that the inputs to Compute should be of type
> FuzzyNumber, not FuzzyNumber'Class. Users of Compute would upcast as
> necessary. (However, they somehow have to have some reason to believe
> that upcasting yields a meaningful result, which is hard to know
> without seeing into the implementations of the abstractions. This is
> a general difficulty with programming by extension).
That's another question. No programming by extension was intended. It
was rather an attempt to have different respresentations for same
thing (FuzzyNumber).
> I'm not a computer scientist, and I haven't ever studied multiple
> dispatch, so maybe this is a naive question... but don't you now have
> a problem with cross-coupled sibling dependencies? Suppose I create
> another type Wild_And_Wooly_Number, derived also from FuzzyNumber?
> How do you fill in your table then?
It is not a naive question. We could say (1) Wild_And_Wooly_Number
knows nothing about SpecialFuzzyNumber. Then a definition of + for any
mixture of SpecialFuzzyNumber and Wild_And_Wooly_Number is not a method
=> not an overriding => either an overloading or illegal. Alternatively
(2) we "just" have to define (no matter implicit or explicit) all
possible combinations involving Wild_And_Wooly_Number and any of
existing successors of FuzzyNumber. If Wild_And_Wooly_Number does not
override +, then the compiler does it implicitly (by taking an
appropritate + where each appearance of Wild_And_Wooly_Number is
replaced by FuzzyNumber). If a programmer overrides at least one, then
there are two possibilities: either to use the default for others (=
unexpected behaviour) or to force the programmer to override all of them
too (= combinatoric explosion).
As I already said in my previous postings, I do not know the answer. I
even do not know whether the answer exists (:-()
--
Regards,
Dmitry Kazakov
Sent via Deja.com
http://www.deja.com/
next prev parent reply other threads:[~2001-02-02 13:49 UTC|newest]
Thread overview: 79+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-01-06 0:11 Parameter Modes, In In Out and Out i.a.mcleod
2001-01-06 4:58 ` tmoran
2001-01-06 17:06 ` Robert Dewar
2001-01-06 19:50 ` tmoran
2001-01-06 20:31 ` Robert Dewar
2001-01-07 1:59 ` John English
2001-01-07 3:51 ` Robert Dewar
2001-01-08 12:06 ` dmitry6243
2001-01-09 4:32 ` Robert Dewar
2001-01-09 10:05 ` dmitry6243
2001-01-09 4:35 ` Robert Dewar
2001-01-09 9:58 ` dmitry6243
2001-01-09 14:13 ` Robert Dewar
2001-01-09 18:29 ` dmitry6243
2001-01-09 19:55 ` Robert Dewar
2001-01-10 0:47 ` Brian Rogoff
2001-01-10 21:50 ` Robert Dewar
2001-01-10 9:23 ` dmitry6243
2001-01-10 21:46 ` Robert Dewar
2001-01-11 11:46 ` dmitry6243
2001-01-11 16:48 ` Robert Dewar
2001-01-11 19:52 ` Thierry Lelegard
2001-01-11 20:10 ` Pascal Obry
2001-01-12 8:05 ` Florian Weimer
2001-01-12 13:31 ` gasperon
2001-01-12 14:02 ` n_brunot
2001-01-12 17:26 ` charlet
2001-01-14 18:23 ` n_brunot
2001-01-14 21:05 ` Robert Dewar
2001-01-15 8:56 ` n_brunot
2001-01-12 11:05 ` dmitry6243
2001-01-12 13:55 ` Robert Dewar
2001-01-12 22:10 ` Dale Stanbrough
2001-01-13 1:13 ` Robert Dewar
2001-01-13 17:29 ` dmitry6243
2001-01-13 18:22 ` Robert Dewar
2001-01-13 22:32 ` Brian Rogoff
2001-01-14 6:02 ` Jeffrey Carter
2001-01-14 14:33 ` Robert Dewar
2001-01-14 18:14 ` Jeffrey Carter
2001-01-14 21:10 ` Robert Dewar
2001-01-14 20:45 ` Brian Rogoff
2001-01-14 14:23 ` Robert Dewar
2001-01-14 20:42 ` Brian Rogoff
2001-01-14 21:17 ` Robert Dewar
2001-01-15 20:57 ` Brian Rogoff
2001-01-15 16:25 ` dmitry6243
2001-02-02 7:06 ` Multiple dispatch (was " mark_lundquist
2001-02-02 13:49 ` dmitry6243 [this message]
2001-01-16 12:22 ` Georg Bauhaus
2001-01-13 4:46 ` Larry Kilgallen
[not found] ` <93ko49$auq$1@nnrp1.deja.coOrganization: LJK Software <eiviJtYj+A7W@eisner.decus.org>
2001-01-13 6:00 ` Robert Dewar
2001-01-11 21:38 ` mark_lundquist
2001-01-12 0:20 ` John English
2001-01-12 13:57 ` Robert Dewar
2001-01-12 20:34 ` mark_lundquist
2001-01-13 18:06 ` Brian Rogoff
2001-01-11 21:28 ` mark_lundquist
2001-01-12 12:35 ` dmitry6243
2001-01-12 21:22 ` mark_lundquist
2001-01-13 1:16 ` Robert Dewar
2001-02-02 5:42 ` mark_lundquist
2001-02-02 14:55 ` Stephen Leake
2001-02-02 20:08 ` Robert Dewar
2001-02-05 15:00 ` Stephen Leake
2001-01-13 21:26 ` Jean-Pierre Rosen
2001-01-11 21:24 ` mark_lundquist
2001-01-12 12:13 ` dmitry6243
2001-01-06 16:21 ` Jean-Pierre Rosen
2001-01-09 15:15 ` Thierry Lelegard
2001-01-10 21:53 ` Robert Dewar
2001-01-07 19:15 ` DuckE
2001-01-09 20:44 ` Laurent Guerby
2001-01-09 21:46 ` Florian Weimer
2001-01-10 21:57 ` Robert Dewar
2001-01-10 23:51 ` Tucker Taft
2001-01-11 4:23 ` Robert Dewar
2001-01-11 19:28 ` Laurent Guerby
2001-01-18 18:53 ` FAROOQATIF
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox