From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,229ea0001655d6a2 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news4.google.com!proxad.net!proxad.net!newsfeed.arcor.de!newsspool4.arcor-online.net!news.arcor.de.POSTED!not-for-mail Newsgroups: comp.lang.ada Subject: Re: Generic Package From: Georg Bauhaus In-Reply-To: <1d7fjjn90n15q.tz3xkhxpuz5x.dlg@40tude.net> References: <1177539306.952515.222940@s33g2000prh.googlegroups.com> <9eejm6rqip.fsf@hod.lan.m-e-leypold.de> <19qllkvm6ut42$.1iqo74vjgmsrv$.dlg@40tude.net> <1177801611.10171.32.camel@localhost.localdomain> <1woad6hn9idy2$.6otnwphc1o0h$.dlg@40tude.net> <1177929029.6111.34.camel@localhost> <1177944533.13970.17.camel@localhost> <2aq08qbvw0ym$.1rquampzo7o53.dlg@40tude.net> <1ieq3io2d6nnq$.13818v3y35gnr.dlg@40tude.net> <1178010142.6695.29.camel@localhost.localdomain> <1178026941.16837.88.camel@localhost.localdomain> <1ozvzzh59ebq8$.yeh9do8s3hig$.dlg@40tude.net> <1178055690.27673.39.camel@localhost.localdomain> <1gptkhkkk93hj.1n23zmm3go7tc$.dlg@40tude.net> <1178106506.17912.33.camel@localhost> <1d7fjjn90n15q.tz3xkhxpuz5x.dlg@40tude.net> Content-Type: text/plain Content-Transfer-Encoding: 7bit Message-Id: <1178216879.11140.18.camel@kartoffel> Mime-Version: 1.0 X-Mailer: Evolution 2.10.1 Date: Thu, 03 May 2007 20:27:59 +0200 Organization: Arcor NNTP-Posting-Date: 03 May 2007 20:27:59 CEST NNTP-Posting-Host: 71a832ca.newsspool4.arcor-online.net X-Trace: DXC=D<]DEIE6[0i<6cDJZfMd_c4IUK On Wed, 2007-05-02 at 15:12 +0200, Dmitry A. Kazakov wrote: > On Wed, 02 May 2007 13:48:26 +0200, Georg Bauhaus wrote: > > > On Wed, 2007-05-02 at 12:29 +0200, Dmitry A. Kazakov wrote: > > > >>> Memory is not abstract, addresses aren't abstract, > >> > >> In what sense? > > > > When you write a Set implementation for a PC, you can specifying > > addresses and refer to addresses in a consistent way. > > But I am not required to do so. (I'll listen to Randy who said: "In any case, this is an Ada forum, and abstractions that you cannot describe in Ada are simply not relevant", and be brief, for one more time only.) > Now, let you have a container holding 1, 2, 3, can you > point me the address of 2 there? Yes. It is between 1 and 3, the docs say. Whether it actually is a computer address between 1'Address and 3'Address is a matter of implementation, but I can base arguments on 2 being between 1 and 3. But anyway, I don't have to at all because my Iterator is fine with any permutation of {1,2,3}. Let the implementation magic pick some first element. > BTW 2, it is sort of surprising to have such a discussion in c.l.a., for > Ada was one of the first languages introducing a clear distinction between > interface and implementation. Ada has interfaces, implementations, and a publicly available LRM which, in part, informs its readers about what to expect from behind some interfaces, in abstract terms I would say :-) > >> or > >> > >> 2. The program is incorrect, Precondition on local Count_Var together with Add_One before calling Foreach... I had given an argument about the correctness of the program WRT some model of how Foreach works. When a container doesn't provide an interface for expressing all preconditions, OK. Then the precondition refers to different things and it is up to the container to maintain invariants, no? > >> Ordering is determined by sole existence of the > >> librarian who can give you a [first] book and continue to do so. > > > > That is, ordering is an outcome of the librarians operation, > > not of the books. > > Come on, all orderings are ordered but some orderings are more ordered than > others? (:-)) _WHAT_ is the difference? Let you asked somebody to bring > you books in their "proper" order. How can you determine if he does not > cheat? I don't check an order that I don't know, can't know, and don't care about.