From: Niklas Holsti <niklas.holsti@tidorum.invalid>
Subject: Re: Overriding puzzle
Date: Thu, 31 Dec 2015 10:22:01 +0200
Date: 2015-12-31T10:22:01+02:00 [thread overview]
Message-ID: <dek6taF5o9dU1@mid.individual.net> (raw)
In-Reply-To: <n61o94$nu8$1@loke.gir.dk>
On 15-12-31 01:10 , Randy Brukardt wrote:
> <marciant@earthlink.net> wrote in message
> news:677d0956-63d3-4de8-a6e5-b79c52a1dc12@googlegroups.com...
>> On Wednesday, December 30, 2015 at 1:24:06 PM UTC-5,
>> gautier...@hotmail.com wrote:
>>> No, the "A'Class(o)" also makes the difference when type Custom
>>> is framed into a package:
>>
> ...
>> General note to self: tagged type operations that call other operations of
>> the type should always(?) convert the object to its 'class so as to cause
>> dispatching. Not doing so is probably a defect!
>
> Nooooo. Redispatching is best left for very limited circumstances. There's a
> reason that Ada makes you write it explicitly!
Close to an extreme view, in the spectrum of views... But I agree that
it is good that Ada requires an explicit indication of redispatching.
> The model of Ada is that within a routine (including inherited routines) the
> object acts as if it had the named type. This makes it much easier to reason
> about the routine, as the behavior of all of the routines called is known.
>
> When you redispatch, you no longer can reason in any useful way about the
> behavior of the call -- essentially you are depending on "magic" (and the
> competency of others) to get the right answer. In limited circumstances
> (like the OP), it works well, but for general programming, look out!
The same (IMO a bit paranoid) argument would logically apply to all
dispatching calls, including dispatching calls from class-wide subprograms.
The conclusion would be that one cannot reason in any useful way about
any dispatching call. I don't agree with that conclusion.
--
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
. @ .
next prev parent reply other threads:[~2015-12-31 8:22 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-30 14:49 Overriding puzzle gautier_niouzes
2015-12-30 15:10 ` Egil H H
2015-12-30 17:31 ` gautier_niouzes
2015-12-30 18:07 ` marciant
2015-12-30 18:24 ` gautier_niouzes
2015-12-30 21:40 ` marciant
2015-12-30 23:10 ` Randy Brukardt
2015-12-31 8:22 ` Niklas Holsti [this message]
2015-12-31 8:42 ` Dmitry A. Kazakov
2016-01-03 7:18 ` Randy Brukardt
2015-12-31 16:30 ` marciant
2015-12-30 23:13 ` Randy Brukardt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox