comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Generic Collection
Date: Sat, 12 May 2007 09:52:51 +0200
Date: 2007-05-12T09:52:39+02:00	[thread overview]
Message-ID: <17ls9n89vi0vh.n8gfdmvo4lv2$.dlg@40tude.net> (raw)
In-Reply-To: m2y7ju1pe6.fsf@mac.com

On Sat, 12 May 2007 08:18:09 +0100, Simon Wright wrote:

> andrew <andrew.carroll@okstate.edu> writes:
> 
>> So I think you are saying I would have one Collection package and it
>> has three procedures called Add and they operate on three different
>> types:
>> Tuple
>> Table
>> Schema
>>
>> but then how do I later use the collection package for some other
>> purpose?
> 
> I would probably end up with a package for each, with appropriate Add
> operations.
> 
> with Tuples;
> package Tables is
>   type Table is private;
>   procedure Add (To : in out Table; Item : Tuples.Tuple);

+ some other set-theoretic operations on the containers.

You meant

   procedure Add (To : in out Table; Item : Tuples.Tuple'Class);

of course.

> I can't see what possible advantage you'd get from being able to add a
> Colour to a Schema! If you make a container that can contain anything
> you will need to have runtime checks to enforce this sort of rule
> rather than compile-time checks.

The problem is not in checks but with the design. The code reader has no
idea of what can be done with a collection member <=> what to expect there
<=> what can be put there. The algebra of collections does not tell
anything about that (= about the meanings of tuples and the sets of). It is
not yet a design.

> Elsewhere in this thread you seemed
> to scoff at this as being a concern; I think classwide programming
> ought to be restricted to the places where it brings you an advantage
> rather than being something that makes your life difficult.

Uhm, class-wide programming above is rather about implementation of
containers in a manner independent on what is in. This does not contradict
in any way to problem solving, which presumes doing something with the
things in the containers. These are just two different problems. So as long
as nobody says anything about what should be done with tuples, we assume
that it must be nothing. (:-))

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



  reply	other threads:[~2007-05-12  7:52 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-08 19:29 Generic Collection andrew
2007-05-08 21:00 ` Georg Bauhaus
2007-05-08 21:59   ` andrew
2007-05-09 14:51     ` andrew
2007-05-09 16:12       ` Georg Bauhaus
2007-05-09 18:54         ` andrew
2007-05-10 19:31           ` Simon Wright
2007-05-10 22:48             ` andrew
2007-05-11  8:10               ` Georg Bauhaus
2007-05-11 20:41                 ` andrew
2007-05-11 21:28                   ` Georg Bauhaus
2007-05-11 21:55                     ` andrew
2007-05-12  7:18               ` Simon Wright
2007-05-12  7:52                 ` Dmitry A. Kazakov [this message]
2007-05-13 11:00                   ` Simon Wright
2007-05-13 12:11                     ` Dmitry A. Kazakov
2007-05-16  0:27                     ` Randy Brukardt
2007-05-16  6:05                       ` Simon Wright
2007-05-16  7:17                         ` Untagged types don't work right - was: " Grein, Christoph (Fa. ESG)
2007-05-16 13:27                       ` Benjamin Place
2007-05-14 17:09                 ` andrew
2007-05-14 20:00                   ` Simon Wright
replies disabled

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