comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Functions vs constants
Date: Thu, 24 Jul 2014 14:50:12 +0200
Date: 2014-07-24T14:50:12+02:00	[thread overview]
Message-ID: <1eb6fsdonkyq5$.vqa213lr7nn6$.dlg@40tude.net> (raw)
In-Reply-To: lqqobq$tmn$1@dont-email.me

On Thu, 24 Jul 2014 12:49:30 +0200, G.B. wrote:

> On 24.07.14 12:11, Dmitry A. Kazakov wrote:
>>> I think that homonyms like "+" and "Put" could be put on the "overriding"
>>> >side of "overriding vs overloading", couldn't they?
> 
>> 1. Not without MI and MD, obviously. E.g. all types defining "+" would be
>> descendants of Additive_Group interface.
> 
> Considering frequent additions,
> 
> a) won't the sum typically be produced from arguments
>     of the same specific additive group, and

Sometimes yes, if you mean whether addition is covariant. But not always,
e.g. matrix addition when dimension is a part of the type.

> b) won't the result be added to more of the same specific
>     type or else be subject to type conversion?

An implicit conversion, e.g. to a sub/supertype?

-----------------
But I don't see how these details resolve the issue. If you want to get rid
of overloading, you must bring all arguments of the operation under one
roof. Since arguments may be from different type hierarchies, e.g.

   Put (File, Value)

you need MD to glue the hierarchy of files (rendering contexts) with the
hierarchy of printable entities in Put.

MI is needed because the hierarchies are not trees. You need glue additive
(+) and multiplicative groups (*) in some types (Integer), but not in all
types (Vector).

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de


  reply	other threads:[~2014-07-24 12:50 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-21 21:18 Functions vs constants Victor Porton
2014-07-21 21:28 ` Victor Porton
2014-07-21 21:49   ` Shark8
2014-07-21 21:52     ` Victor Porton
2014-07-21 21:59       ` Adam Beneschan
2014-07-21 21:35 ` Niklas Holsti
2014-07-21 21:41   ` Victor Porton
2014-07-21 23:23   ` Randy Brukardt
2014-07-22  7:42     ` Dmitry A. Kazakov
2014-07-22 22:07       ` Randy Brukardt
2014-07-23  7:55         ` Dmitry A. Kazakov
2014-07-23 21:44           ` Randy Brukardt
2014-07-23 12:37         ` G.B.
2014-07-23 22:12           ` Randy Brukardt
2014-07-24  7:20             ` Stefan.Lucks
2014-07-25  4:43               ` Randy Brukardt
2014-07-26  2:36                 ` Shark8
2014-07-24  8:27             ` Georg Bauhaus
2014-07-24 10:11               ` Dmitry A. Kazakov
2014-07-24 10:49                 ` G.B.
2014-07-24 12:50                   ` Dmitry A. Kazakov [this message]
2014-07-25  4:56               ` Randy Brukardt
2014-07-25  6:45                 ` Georg Bauhaus
2014-07-25 10:46                   ` G.B.
2014-07-25 19:31                   ` Randy Brukardt
2014-07-25 20:02                     ` Dmitry A. Kazakov
2014-07-26  2:45                       ` Shark8
2014-07-26  8:02                         ` Dmitry A. Kazakov
2014-07-26 14:03                           ` Shark8
2014-07-26 14:18                             ` Dmitry A. Kazakov
2014-07-21 21:55 ` Victor Porton
2014-07-22  7:06 ` Maciej Sobczak
2014-07-22  7:50   ` Dmitry A. Kazakov
2014-07-22 22:14     ` Randy Brukardt
2014-07-23 13:21       ` Stephen Leake
2014-07-23 13:27         ` Victor Porton
2014-07-23 15:10         ` Adam Beneschan
2014-07-23 21:57 ` Robert A Duff
2014-07-24 12:25   ` Victor Porton
2014-07-24 15:53     ` Robert A Duff
2014-07-24 15:57       ` Victor Porton
2014-07-24 16:47   ` Pascal Obry
2014-07-24 12:26 ` anon
2014-07-24 12:52 ` Victor Porton
2014-07-24 16:01   ` Robert A Duff
2014-07-24 16:15     ` Adam Beneschan
2014-07-25  5:05     ` 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