comp.lang.ada
 help / color / mirror / Atom feed
From: briot.emmanuel@gmail.com
Subject: Re: A few questions
Date: Tue, 17 Nov 2015 00:49:43 -0800 (PST)
Date: 2015-11-17T00:49:43-08:00	[thread overview]
Message-ID: <64a2a1bd-7519-4d66-bfb6-9b2a1fb1773b@googlegroups.com> (raw)
In-Reply-To: <n2d9s2$ipe$1@loke.gir.dk>

> Huh? You are suggesting an alternative description for the existing 
> iterators for the existing containers. (If you're suggesting anything else, 
> you're wasting everybodies time, 'cause something that won't work with the 
> existing containers is a non-starter.)

I am trying to think of things should have been done, so that perhaps we can find a
way to fix them in future versions of the language. As this discussion as shown, there
are lots of very knowledgeable people who are having difficulties with the current
design and its limitations. If you think this is wasting your time, by all means feel free
to ignore this thread. I have found it pretty interesting so far.


> And the Reference function in the 
> existing containers (and in any container I can imagine) takes a container 
> parameter. That parameter has to come from somewhere, and it can't come from 
> the iterator interface (it doesn't include a container in the description). 
> So where does it come from??

I was talking of the Reference_Type (which doesn't need a container in the public
spec, although it is convenient sometimes to have one to ensure the lifetime of
the container is greater than that of the reference -- with all the additional
performance costs).
The Iterator interface is an interface, so of course it doesn't contain anything. An
actual Iterator implementation is free to store a reference to the container if it needs
it to implement complex algorithms. An iterator could return a reference by building
it directly, it doesn't need to go through the Reference function for this.

> You're speaking nonsense. The element is part of the container, and the only 
> way to access it is from the container. 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???

I'll forward you to the discussion you are having with Dmitry. Your notion of
Index vs Cursor vs Iterators seems to be wrong.

> I'm mapping iteration onto the existing containers. That is straightforward 
> with the existing description,

No it is not. Anyone who has already tried to implement their own iterators
has failed the first time (at AdaCore, but also Simon Wright in the initial
message here, at courses we have given in various places,....)

> The limitations aren't that severe, and seem mostly to be related to having 
> the iterator object be an "in" parameter. (That's probably happened because 
> "in out" parameters on functions seem weird, but they clearly make more 
> sense in this case.)

I'll stop this discussion which indeed is leading nowhere. You started by saying
that for-of is useless, so all the rest is moot from your point of view. I can
understand where you are coming from. You can't understand where we want
to go.



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