comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: A few questions
Date: Thu, 12 Nov 2015 15:15:45 -0600
Date: 2015-11-12T15:15:45-06:00	[thread overview]
Message-ID: <n22vi2$iac$1@loke.gir.dk> (raw)
In-Reply-To: hs9mu83acmqt$.5liwfglzrr7q.dlg@40tude.net

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:hs9mu83acmqt$.5liwfglzrr7q.dlg@40tude.net...
> On Thu, 12 Nov 2015 12:28:46 -0600, Randy Brukardt wrote:
>
>> Personally, I find the "of" form unnecessary; we've iterated arrays for
>> decades without direct access to the element (using the "cursor", that is
>> the array index), so why are containers different?
>
> Of course it is different. Index does not iterate array, it does the
> array's index range. That is the difference.
>
> You can iterate elements of a container or indices of a container. It is
> not same.

Surely it is not the same. But why do we need the first? An array is surely 
a container, and we got along just fine for 30 years without being able to 
iterate elements of arrays. There is absolutely no difference for any other 
sort of container (especially as the array syntax can be used for any 
container).

Iterating on elements of a container is unnecessary overkill. (It's also 
harmless overkill, unlike, say, anonymous access types).

>> Especially as the
>> indexing form works on all of the language-defined containers (you never
>> need to explicitly call Reference or Element). So an "in" iterator looks
>> just like the array iteration that we've been using from the beginning of
>> time. What's so hard about that?
>
> There could be cases when a container does not have any natural index. 
> E.g.
> a bag, a set, a files directory etc. You could iterate elements of without
> inventing indices. Especially when the index is volatile. Consider an
> implementation that gets a result set of a DB query and then iterates the
> result.

There is always *something* that works as an index. If there isn't, you 
can't iterate (because you can't figure out a reproducible order for which 
item is next). In any case, Ada does not support iteration without something 
being a cursor; the "of" form of iteration is a direct translation of the 
"in" form of iteration (it's purely syntactic with no semantics of its own).

                                              Randy.



  reply	other threads:[~2015-11-12 21:15 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-31 20:29 A few questions Laurent
2015-10-31 20:49 ` Dmitry A. Kazakov
2015-11-01 13:16   ` Laurent
2015-11-01  0:25 ` Jeffrey R. Carter
2015-11-01 13:30   ` Laurent
2015-11-03  6:25   ` Randy Brukardt
2015-11-01  9:05 ` Jacob Sparre Andersen
2015-11-01 13:40   ` Laurent
2015-11-01 18:14     ` Jacob Sparre Andersen
2015-11-01 18:40       ` Laurent
2015-11-01 13:42 ` brbarkstrom
2015-11-01 13:52   ` Laurent
2015-11-01 17:59     ` Jeffrey R. Carter
2015-11-01 18:35       ` Laurent
2015-11-02 13:25     ` brbarkstrom
2015-11-01 15:15   ` Dennis Lee Bieber
2015-11-01 16:33 ` gautier_niouzes
2015-11-01 16:36   ` gautier_niouzes
2015-11-01 18:17 ` Stephen Leake
2015-11-01 18:53   ` Laurent
2015-11-02  0:41     ` Dennis Lee Bieber
2015-11-02 16:42     ` Stephen Leake
2015-11-02 17:45 ` Simon Wright
2015-11-02 18:48   ` Simon Wright
2015-11-03  6:33     ` Randy Brukardt
2015-11-03  8:26       ` Simon Wright
2015-11-03  6:40   ` Randy Brukardt
2015-11-03  8:34     ` Simon Wright
2015-11-04 16:19       ` Simon Wright
2015-11-05  1:20         ` Randy Brukardt
2015-11-05  8:34           ` briot.emmanuel
2015-11-12 18:28             ` Randy Brukardt
2015-11-12 20:19               ` Simon Wright
2015-11-12 20:56               ` Dmitry A. Kazakov
2015-11-12 21:15                 ` Randy Brukardt [this message]
2015-11-13  8:40                   ` Dmitry A. Kazakov
2015-11-13 17:52                     ` Randy Brukardt
2015-11-13 20:37                       ` Dmitry A. Kazakov
2015-11-13 22:15                         ` Randy Brukardt
2015-11-14 11:42                           ` Dmitry A. Kazakov
2015-11-14 12:37                           ` Simon Wright
2015-11-14 17:24                             ` Shark8
2015-11-14 20:09                               ` Simon Wright
2015-11-15 18:54                             ` Brad Moore
2015-11-13  8:45               ` briot.emmanuel
2015-11-13 17:41                 ` Randy Brukardt
2015-11-14 19:57                   ` briot.emmanuel
2015-11-16 19:13                     ` Randy Brukardt
2015-11-16 20:47                       ` Dmitry A. Kazakov
2015-11-17 21:30                         ` Randy Brukardt
2015-11-18  9:53                           ` Dmitry A. Kazakov
2015-11-18 22:27                             ` Randy Brukardt
2015-11-19  8:52                               ` Dmitry A. Kazakov
2015-11-19 21:15                                 ` Randy Brukardt
2015-11-16 21:50                       ` Simon Wright
2015-11-17 21:33                         ` Randy Brukardt
2015-11-17 23:14                           ` Simon Wright
2015-11-17  8:49                       ` briot.emmanuel
2015-11-17 22:09                         ` Randy Brukardt
2015-11-05  8:45           ` Simon Wright
2015-11-05  8:52             ` Simon Wright
2015-11-12 18:29               ` Randy Brukardt
2015-11-12 18:32               ` Randy Brukardt
2015-11-12 20:02                 ` Simon Wright
2015-11-12 21:08                   ` Randy Brukardt
2015-11-15 17:56                     ` Brad Moore
2015-11-15 21:42                       ` Simon Wright
2015-11-16 19:16                       ` Randy Brukardt
  -- strict thread matches above, loose matches on Subject: below --
2015-02-07 17:43 Laurent
2015-02-07 22:15 ` Brad Moore
2015-02-08 22:37   ` Laurent
2015-02-09 13:56     ` Brad Moore
2015-02-09 18:36       ` Laurent
replies disabled

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