comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Discriminant of a limited type object
Date: Thu, 1 Mar 2018 16:00:39 -0600
Date: 2018-03-01T16:00:39-06:00	[thread overview]
Message-ID: <p79t68$kds$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: p78een$1jfi$1@gioia.aioe.org

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:p78een$1jfi$1@gioia.aioe.org...
> On 01/03/2018 00:10, Randy Brukardt wrote:
...
>> Ada 2020 has you covered:
>>
>>      function F(Index : Natural) return Element is
>>      begin
>>         return do-init of A (Index - 1);
>>      end F;
>>      A : T (1..N) := (for I in 1 .. N  => F(I));
>>
>> Note the new iterator choice in the aggregate.
>
> Definitely less ugly than recursion. But does this "loop" guarantee that F 
> will be called in the order?

Nope, it's an aggregate and can be evaluated in any order. No aggregate is 
appropriate for something that has to be done sequentially. (With the 
exception of array delta aggregates; perhaps you could jury-rig something 
using one of them.)

It's not clear that there is much use for streaming of limited objects, as 
streaming is very much like assignment (it makes a copy of the object). One 
would expect that if assignment is a problem, so would streaming be a 
problem. I suppose there are some cases where controlled assignment isn't a 
good solution (I haven't seen one personally, but everything happens 
eventually...), but it seems like a niche need at best.

                                    Randy.


  reply	other threads:[~2018-03-01 22:00 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-27 17:54 Discriminant of a limited type object Dmitry A. Kazakov
2018-02-27 22:20 ` Randy Brukardt
2018-02-27 22:53   ` Dmitry A. Kazakov
2018-02-28  6:36     ` J-P. Rosen
2018-02-28  8:42       ` Dmitry A. Kazakov
2018-02-28  9:07         ` J-P. Rosen
2018-02-28 17:16       ` Jeffrey R. Carter
2018-02-28 23:10     ` Randy Brukardt
2018-03-01  8:43       ` Dmitry A. Kazakov
2018-03-01 22:00         ` Randy Brukardt [this message]
2018-03-02 10:30           ` 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