comp.lang.ada
 help / color / mirror / Atom feed
From: Ted Dennison<dennison@telepath.com>
Subject: Re: List container strawman 1.1
Date: Mon, 05 Nov 2001 20:00:47 GMT
Date: 2001-11-05T20:00:47+00:00	[thread overview]
Message-ID: <PdCF7.13570$xS6.18096@www.newsranger.com> (raw)
In-Reply-To: 3BE5AB8F.681577D0@free.fr

In article <3BE5AB8F.681577D0@free.fr>, Jean-Marc Bourguet says...
>First, what's the semantic of assignation and of the equality test ?

Since each element is copied into the list (rather than pointed to), then
assignment would make a new list that contains copies of all the elements in the
first list (in the same order). Equality probably should be the result of
"and"ing the equality test on all elements in both lists. However, that doesn't
seem too horribly useful to me, so perhaps "=" could get put in the private
section if people have a problem with that.

>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.

That's pretty much what would have to be done. You missed the fact that the
iterators would have to be made controlled, with pointers back to the parent
List, so that they can remove themselves when they go out of scope or get
deallocated. Doing all that work for a such a minor safety gain doesn't seem to
be a big win for me. Additionally, implementing a list inside of our cannonical
list just rubs me the wrong way. Thus I'd vote against trying to make it "safe",
as long as the possible issues are clearly documented.

>A procedure to set the item as well as to get it could also be nice.

You can perform a Remove followed by an Insert, which would do roughly the same
thing. I suppose an "Assign" would save you a call, plus whatever dynamic
allocation would occur in deleting and creating an element. Since that would be
the only way to modify a list entry, perhaps it should be there.

>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

Force of habit. I'm used to implementing these things as naked pointers. I think
the proper idiom probably should be "Done_Iterating" as a boolean function, as
you say (or perhaps "More_Elements", so the while condition is positive). Does
anyone disagree? Does anyone think they should *both* be there?

---
T.E.D.    homepage   - http://www.telepath.com/dennison/Ted/TED.html

No trees were killed in the sending of this message. 
However a large number of electrons were terribly inconvenienced.



  reply	other threads:[~2001-11-05 20:00 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
2001-11-05 20:00   ` Ted Dennison [this message]
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