comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: A few questions
Date: Tue, 17 Nov 2015 15:30:28 -0600
Date: 2015-11-17T15:30:28-06:00	[thread overview]
Message-ID: <n2g69m$aq6$1@loke.gir.dk> (raw)
In-Reply-To: 8hw612c7lfik.1cy0uanjjnpzv$.dlg@40tude.net

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:8hw612c7lfik.1cy0uanjjnpzv$.dlg@40tude.net...
> On Mon, 16 Nov 2015 13:13:05 -0600, Randy Brukardt wrote:
>
>> You're speaking nonsense. The element is part of the container, and the 
>> only
>> way to access it is from the container.
>
> I think you are confusing indices with iterators. The very concept of the
> iterator is accessing elements without the container as opposed to the
> index.

That's surely not my idea of an iterator. And it doesn't work for Ada in any 
case, as that would allow altering elements of constant containers (we 
prevent that in the containers library by requiring an "in out" container 
parameter in all cases where modifications are allowed).

>> You can't create a reference to an
>> element of a container without having the container. But your proposed
>> interface does not have the container anywhere. How does the reference 
>> get
>> created???
>
> From the old reference of course. Iterators are pointers.

Nonsense.

> Both concepts of
> iterator and index have fundamental operations to create a new instance
> referencing some other element (next, previous, sibling, parent, neighbour
> etc)

The C++ containers mix up the ideas of iterators and cursors (they're 
essentially the same thing there). By your description, you want them to be 
the same -- but in that case, just use the cursors and be done with it. You 
will sacrifice safety and ease-of-use to do so, but whatever.

>>>> Making a language "more expressive" is code for "easier to write", 
>>>> which
>>>> never was a goal of Ada.
>>>
>>> That's one of the issue here. The goal for Ada, as I understand it, has 
>>> always
>>> been to be "easier to read". There is no reason why "easier to write" 
>>> should
>>> be in opposition to that goal.
>>
>> "Easier to write" almost always is in opposition, because it means using
>> shorthands that cannot easily be deciphered by a human. The "for E of
>> Container loop" is certainly in that category, we only allow it because 
>> no
>> one other than implementers need to understand how it works in detail. 
>> The
>> way one expects it to work is in fact how it works when read - but if you
>> need to understand the details, it's a disaster.
>
> A disaster is when nobody can understand the details. The concept of
> iteration is simple, so an implementation of its syntax sugar (nothing 
> more
> than sugar) must be easily readable and writeable, since all work is
> already done in the container.

Well, that's what we did, but you don't seem to be able to see it. Can't 
help with that...

                   Randy.


  reply	other threads:[~2015-11-17 21:30 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
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 [this message]
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