From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Ada 2005 puzzle
Date: Fri, 20 Jul 2012 10:27:15 +0200
Date: 2012-07-20T10:27:15+02:00 [thread overview]
Message-ID: <1uli63mb1e82x.11cuz41guddr5.dlg@40tude.net> (raw)
In-Reply-To: 72bc2c23-4a1c-4c09-985e-8cc4c0fd957f@googlegroups.com
On Fri, 20 Jul 2012 01:09:45 -0700 (PDT), Maciej Sobczak wrote:
> W dniu pi�tek, 20 lipca 2012 04:41:46 UTC+2 u�ytkownik Randy Brukardt napisa�:
>
>> For example, you can't put limited objects into containers.
>
> Then we have poor containers.
>
> Let's take existing Query_Element-like operations for inspiration. What about:
>
> procedure Insert (C : in out Container;
> Constructor : not null access function return T);
The problem is that a *new* limited object cannot be result of a function,
this is conceptually broken. The factory of limited objects passed to
Insert must provide means to:
1. determine the constraints of the object (using some set of arguments);
2. construct the object in place (using the arguments again);
3. optionally, construct the class-wide object upon the specific object
(using the arguments)
1-3 cannot be effectively fused into single operation, e.g. constructing
function wrapping an aggregate. This is the root problem.
P.S. I think you could probably go further with
procedure Insert (C : in out Container;
Constructor : not null access function return not null access T);
But that is not we all wanted to get from a language like Ada.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2012-07-26 14:31 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-12 12:54 Ada 2005 puzzle Dmitry A. Kazakov
2012-07-12 15:48 ` Adam Beneschan
2012-07-12 16:34 ` Dmitry A. Kazakov
2012-07-19 6:53 ` Randy Brukardt
2012-07-19 7:55 ` Dmitry A. Kazakov
2012-07-20 2:22 ` Randy Brukardt
2012-07-20 7:20 ` Dmitry A. Kazakov
2012-07-21 0:04 ` Randy Brukardt
2012-07-21 8:34 ` Dmitry A. Kazakov
2012-07-24 2:38 ` Randy Brukardt
2012-07-24 4:23 ` Adam Beneschan
2012-07-24 7:54 ` Dmitry A. Kazakov
2012-07-25 23:39 ` Randy Brukardt
2012-07-26 7:41 ` Dmitry A. Kazakov
2012-07-26 13:08 ` Simon Wright
2012-07-26 13:55 ` Dmitry A. Kazakov
2012-07-27 9:42 ` AdaMagica
2012-07-27 10:32 ` Dmitry A. Kazakov
2012-07-27 11:58 ` Georg Bauhaus
2012-07-27 13:04 ` Dmitry A. Kazakov
2012-07-28 9:48 ` AdaMagica
2012-07-28 10:37 ` Dmitry A. Kazakov
2012-07-28 16:59 ` AdaMagica
2012-07-28 18:21 ` Dmitry A. Kazakov
2012-07-19 8:04 ` Maciej Sobczak
[not found] ` <juaghb$fv9$1@munin.nbi.dk>
2012-07-20 7:30 ` Dmitry A. Kazakov
2012-07-21 17:21 ` Vasiliy Molostov
2012-07-21 19:03 ` Dmitry A. Kazakov
2012-07-21 19:37 ` Vasiliy Molostov
2012-07-21 20:23 ` Dmitry A. Kazakov
2012-07-21 20:53 ` Vasiliy Molostov
2012-07-22 7:41 ` Dmitry A. Kazakov
2012-07-22 8:00 ` Vasiliy Molostov
2012-07-22 8:19 ` Dmitry A. Kazakov
2012-07-22 9:06 ` Vasiliy Molostov
2012-07-22 9:34 ` Dmitry A. Kazakov
2012-07-20 8:09 ` Maciej Sobczak
2012-07-20 8:27 ` Dmitry A. Kazakov [this message]
2012-07-20 11:30 ` Maciej Sobczak
2012-07-20 12:49 ` Dmitry A. Kazakov
2012-07-21 22:46 ` Maciej Sobczak
2012-07-22 8:03 ` Dmitry A. Kazakov
2012-07-22 10:08 ` Florian Weimer
2012-07-22 11:18 ` Dmitry A. Kazakov
2012-07-21 0:12 ` Randy Brukardt
2012-07-22 9:52 ` Florian Weimer
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox