From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Negative float problem
Date: Wed, 2 Nov 2005 15:44:01 +0100
Date: 2005-11-02T15:44:02+01:00 [thread overview]
Message-ID: <guiwbv8mbauh.16mluot0pbu80$.dlg@40tude.net> (raw)
In-Reply-To: wccy847p44a.fsf@shell01.TheWorld.com
On 02 Nov 2005 08:32:21 -0500, Robert A Duff wrote:
> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
>
>> On Wed, 02 Nov 2005 10:04:21 +0100, Maciej Sobczak wrote:
>>
>>> Dmitry A. Kazakov wrote:
>>>
>>>> package A is
>>>> type Foo is ...;
>>>> function "+" (Left, Right : Foo) return Foo;
>>>> end A;
>>>> -------------------
>>>> package A.B is
>>>> X : Foo;
>>>> function "+" (Left, Right : Foo) return Foo;
>>>> end A.B;
>>>> ------------------
>>>> with A.B;
>>>> ...
>>>> A.B.X + A.B.X -- BOOOOM!
>>>
>>> With ADL, I would expect it to call A."+".
>>
>> Which perfectly illustrates why there should be no such thing as ADL.
>> Exactly to prevent making the above legal with the meaning A."+".
>
> Well, perhaps, but the above example is confusing with the current
> rules, too. If you say "use type A.Foo", you get one "+", when you
> might expect to get the other. Even worse, add this to A.B:
> "subtype Foo is A.Foo", and then say "use type A.B.Foo" -- you might be
> surprised to get A."+".
Because "use type" is also a kludge. (:-))
> I think the answer is a coding convention: If you want to declare an
> operator, always make it a primitive of the interesting type involved.
> I'm not sure whether that could reasonably be a language rule...
I think that non-primitive operations should be outlawed in specifications.
I mean as a language design goal, because this would also require handling
multiple dispatch and operations which are primitive for more than one
type. Then there is a case of class-wide operations...
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2005-11-02 14:44 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-26 18:32 Negative float problem Luke
2005-10-26 19:05 ` Samuel Tardieu
2005-10-26 20:42 ` Robert A Duff
2005-10-27 8:05 ` Robert I. Eachus
2005-10-27 14:48 ` Robert A Duff
2005-10-27 15:07 ` Maciej Sobczak
2005-10-27 15:47 ` Robert A Duff
2005-10-28 8:34 ` Maciej Sobczak
2005-10-29 23:39 ` Brian May
2005-10-30 9:11 ` Dmitry A. Kazakov
2005-10-31 9:46 ` Maciej Sobczak
2005-10-31 14:20 ` Dmitry A. Kazakov
2005-11-01 11:06 ` Maciej Sobczak
2005-11-01 14:06 ` Robert A Duff
2005-11-01 14:46 ` Martin Dowie
2005-11-01 16:04 ` Hyman Rosen
2005-11-01 17:19 ` Martin Dowie
2005-11-02 0:13 ` Robert A Duff
2005-11-02 6:59 ` Martin Dowie
2005-11-02 13:24 ` Robert A Duff
2005-11-02 15:22 ` Martin Dowie
2005-11-01 15:12 ` Maciej Sobczak
2005-11-02 0:28 ` Robert A Duff
2005-11-02 4:16 ` Steve Whalen
2005-11-14 7:26 ` Dave Thompson
2005-11-20 0:19 ` Robert A Duff
2005-11-20 11:07 ` Dmitry A. Kazakov
2005-11-01 14:27 ` Dmitry A. Kazakov
2005-11-01 15:19 ` Maciej Sobczak
2005-11-01 19:44 ` Dmitry A. Kazakov
2005-11-02 9:04 ` Maciej Sobczak
2005-11-02 11:17 ` Dmitry A. Kazakov
2005-11-02 13:03 ` Maciej Sobczak
2005-11-02 14:20 ` Jean-Pierre Rosen
2005-11-02 20:15 ` Jeffrey R. Carter
2005-11-03 13:06 ` Jean-Pierre Rosen
2005-11-03 18:32 ` Jeffrey R. Carter
2005-11-03 9:51 ` Maciej Sobczak
2005-11-03 13:20 ` Jean-Pierre Rosen
2005-11-03 15:02 ` Maciej Sobczak
2005-11-03 18:55 ` Frank J. Lhota
2005-11-04 9:32 ` Maciej Sobczak
2005-11-03 20:59 ` Simon Wright
2005-11-02 13:32 ` Robert A Duff
2005-11-02 14:44 ` Dmitry A. Kazakov [this message]
2005-11-02 13:47 ` Dmitry A. Kazakov
2005-10-27 18:33 ` 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