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=-2.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, MAILING_LIST_MULTI autolearn=unavailable autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,d89e2d213646aec8 X-Google-Attributes: gid103376,public Path: controlnews3.google.com!news2.google.com!newsfeed2.dallas1.level3.net!news.level3.com!newsfeed.mathworks.com!nnx.oleane.net!oleane!jussieu.fr!enst.fr!melchior!cuivre.fr.eu.org!melchior.frmug.org!not-for-mail From: Marius Amado Alves Newsgroups: comp.lang.ada Subject: Re: Mneson announcement and help request Date: Wed, 02 Jun 2004 12:41:07 +0100 Organization: Cuivre, Argent, Or Message-ID: References: NNTP-Posting-Host: lovelace.ada-france.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: melchior.cuivre.fr.eu.org 1086176484 87938 212.85.156.195 (2 Jun 2004 11:41:24 GMT) X-Complaints-To: usenet@melchior.cuivre.fr.eu.org NNTP-Posting-Date: Wed, 2 Jun 2004 11:41:24 +0000 (UTC) To: comp.lang.ada@ada-france.org Return-Path: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en In-Reply-To: X-Virus-Scanned: by amavisd-new-20030616-p7 (Debian) at ada-france.org X-BeenThere: comp.lang.ada@ada-france.org X-Mailman-Version: 2.1.4 Precedence: list List-Id: "Gateway to the comp.lang.ada Usenet newsgroup" List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Xref: controlnews3.google.com comp.lang.ada:1024 Date: 2004-06-02T12:41:07+01:00 Yes, this is a nice idiom. I tried to push something similar to the Ada.Containers. More general. See the ARG discussion. Look for "Slice". In time Mneson could grow it's one containers, featuring this. However until hard evidence that exceptions are evil I don't see a strong reason to change. Georg Bauhaus wrote: > Marius Amado Alves wrote: > :> In general, I hate to see code that uses exceptions for normal control flow > :> processing. It certainly appears to > :> me that your code that makes use of the various For_Each_XXX type procedures > :> uses an exception > :> raise to terminate the search when "done". > : > : Yes, that is a controversial style. Some like it, some don't. Note the > : planned Ada standard containers are in this style. > > How about this, which doesn't need exceptions: > > with AI302.Containers.Ordered_Sets; > > package Maa is > > type T is range -5 .. +5; > > package Sets_of_T is new AI302.Containers.Ordered_Sets(T); > > generic > with procedure Process(Pointee: Sets_of_T.Cursor); > procedure Traverse > (container: Sets_of_T.Set; Stop: Sets_of_T.Cursor); > > > end Maa; > > package body Maa is > > procedure Traverse > (container: Sets_of_T.Set; Stop: Sets_of_T.Cursor) > is > use Sets_of_T; > > current: Cursor := first(container); > begin > while current /= Stop loop > process(current); > end loop; > end Traverse; > > end Maa; > > _______________________________________________ > comp.lang.ada mailing list > comp.lang.ada@ada-france.org > http://www.ada-france.org/mailman/listinfo/comp.lang.ada >