comp.lang.ada
 help / color / mirror / Atom feed
From: Jean-Marc Bourguet <jbourguet@free.fr>
Subject: Re: List container strawman 1.1
Date: Sun, 04 Nov 2001 21:56:47 +0100
Date: 2001-11-04T22:00:29+01:00	[thread overview]
Message-ID: <3BE5AB8F.681577D0@free.fr> (raw)
In-Reply-To: 3BE301D1.4010106@telepath.com

Ted Dennison wrote:
> 
> I have a new version of the strawman up at my website at
> http://www.telepath.com/dennison/Ted/Containers-Lists-Unbounded.ads.html
> . This version has the cascading style sheet too, so hopefully nearly
> everyone should be able to read it.

First, what's the semantic of assignation and of the equality test ?

[...]
>     type Iterator is private;
>     Done_Iterating : constant Iterator;
> 
>     function First    (Subject : List)      return Iterator;
>     function Last     (Subject : List)      return Iterator;
>     function Next     (Location : Iterator) return Iterator;
>     function Previous (Location : Iterator) return Iterator;
>     function Item     (Location : Iterator) return Element;
> 
>     -- Ideally these routines would verify that Location was issued for
> the Subject
>     -- list and is still valid, but that would be tough to enforce.
> Better to call
>     -- such misuse a "bounded error", or somesuch.
[...]

(I assume that the first test was meaningfull in the previous version).

It is not hard: the list can have a list of iterators and mark some invalid
when deleting an element or when going out of existance.  Then using an
invalid iterator would raise an exception (Next, Previous could be make to
work).  Having a Is_Valid function testing the validity of the iterator
could be nice.

A procedure to set the item as well as to get it could also be nice.
I wonder why you choose testing the equality with a special value to mark
the end of iteration instead of having a "done" function.  (If you
mimicked the C++ STL, there it is so so that "algorithms" works also with
normal pointers using pointer arithmetic, as in Ada we don't use pointer
arithmetic that's not an argument).  The one iteraror way has the following
advantages :
	- only one iterator to pass around,
	- easier to have "iterators" generating an infinite amount of data
	- easier to have filtering iterators.
While with the two iterators scheme, it is:
	- easier to describe ranges
Both schemas have the same expressing power but having worked with both,
I prefer the one iterator one.

-- 
Jean-Marc



  parent reply	other threads:[~2001-11-04 20:56 UTC|newest]

Thread overview: 90+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-11-02 20:29 List container strawman 1.1 Ted Dennison
2001-11-02 21:00 ` Larry Kilgallen
2001-11-02 21:08   ` Ted Dennison
2001-11-02 21:43     ` Larry Kilgallen
2001-11-02 21:20 ` Darren New
2001-11-02 23:33   ` Jeffrey Carter
2001-11-03  0:19     ` Darren New
2001-11-03  7:03   ` Ted Dennison
2001-11-02 21:45 ` Eric Merritt
2001-11-02 22:52   ` Larry Kilgallen
2001-11-03  7:09   ` Ted Dennison
2001-11-04  0:30   ` Nick Roberts
2001-11-05 12:40     ` Eric Merritt
2001-11-05 22:26       ` Nick Roberts
2001-11-05 23:28         ` Eric Merritt
2001-11-06 16:42           ` Nick Roberts
2001-11-06 17:24             ` Stephen Leake
2001-11-06 18:28               ` Eric Merritt
2001-11-06 22:17               ` Nick Roberts
2001-11-07 19:31                 ` Stephen Leake
2001-11-07 22:55                   ` Nick Roberts
2001-11-10  3:17                   ` Ted Dennison
2001-11-10  3:31                     ` Darren New
2001-11-13 16:47                       ` Stephen Leake
2001-11-13 17:21                         ` Darren New
2001-11-13 20:36                           ` Ted Dennison
2001-11-13 23:48                             ` Ben Place
2001-11-14  4:01                               ` Nick Roberts
2001-11-14 16:10                                 ` Jeffrey Carter
2001-11-14 19:12                                   ` Ted Dennison
2001-11-14 22:32                                   ` Jeffrey Carter
     [not found]                                   ` <_mzI7.24675 <3BF2F0E7.5DD40B4B@boeing.com>
2001-11-15  3:49                                     ` Nick Roberts
2001-11-10  3:07               ` Ted Dennison
2001-11-10 14:18               ` Florian Weimer
2001-11-13 16:48                 ` Stephen Leake
2001-11-06 18:21             ` Eric Merritt
2001-11-08 11:53               ` Simon Wright
2001-11-06 16:30       ` Darren New
2001-11-06 18:19         ` Eric Merritt
2001-11-04  4:55   ` Larry Hazel
     [not found] ` <3BE31DD5.FF96AFE0@san.rr.com>
2001-11-03  7:07   ` Ted Dennison
2001-11-03 18:59     ` Jeffrey Carter
2001-11-04 19:07       ` Darren New
2001-11-04 22:21         ` Jeffrey Carter
2001-11-04 23:43           ` James Rogers
2001-11-05 18:09           ` Darren New
2001-11-05 22:59             ` Jeffrey Carter
2001-11-04 20:56 ` Jean-Marc Bourguet [this message]
2001-11-05 20:00   ` Ted Dennison
2001-11-05 20:27     ` Darren New
2001-11-05 20:54       ` Ted Dennison
2001-11-05 22:30         ` Darren New
2001-11-08 10:50     ` Ehud Lamm
2001-11-05  9:53 ` Mike Ovenden
2001-11-05 14:37 ` Jean-Marc Bourguet
2001-11-05 20:03   ` Ted Dennison
2001-11-06  8:52     ` Jean-Marc Bourguet
2001-11-05 16:01 ` Marin David Condic
2001-11-05 20:06   ` Ted Dennison
2001-11-05 20:45     ` Marin David Condic
2001-11-08 10:54       ` Ehud Lamm
2001-11-08 19:30         ` Marin David Condic
2001-11-08 22:06           ` Nick Roberts
2001-11-10 18:15         ` Simon Wright
2001-11-11 21:33           ` Pascal Obry
2001-11-11 21:55             ` Ehud Lamm
2001-11-05 22:37   ` Nick Roberts
2001-11-09 15:51     ` Ted Dennison
2001-11-10  0:47       ` Nick Roberts
2001-11-06 12:38 ` Roy Bell
2001-11-08 10:56   ` Ehud Lamm
2001-11-08 18:08     ` Roy Bell
2001-11-09 15:55       ` Ted Dennison
2001-11-09 16:15         ` Ehud Lamm
2001-11-09 17:37         ` Marin David Condic
2001-11-09 22:24           ` Ehud Lamm
2001-11-11 15:39             ` Marin David Condic
2001-11-10  2:35           ` Ted Dennison
2001-11-10  4:03             ` Jeffrey Carter
2001-11-11 21:09               ` Simon Wright
2001-11-12  5:33                 ` Ted Dennison
2001-11-12 16:13                 ` Jeffrey Carter
2001-11-13  7:11                   ` Simon Wright
2001-11-11 15:45             ` Marin David Condic
2001-11-11 21:03           ` Simon Wright
2001-11-11 21:57             ` Ehud Lamm
2001-11-12 15:24             ` Marin David Condic
2001-11-13  7:06               ` Simon Wright
2001-11-13 21:21                 ` Marin David Condic
2001-11-13 16:55             ` Stephen Leake
replies disabled

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