Path: news.daimi.aau.dk!glad From: pahe@daimi.aau.dk (Peter von der Ahe) Newsgroups: daimi.beta Subject: Re: Set med "forældelse" Date: 26 Apr 1996 18:05:58 +0200 Organization: DAIMI, Computer Science Dept. of Aarhus Univ. Lines: 51 Sender: pahe@zloty.daimi.aau.dk Distribution: daimi Message-ID: References: <4lqe6f$me7@gjallar.daimi.aau.dk> Reply-To: pahe (Peter von der Ahe) NNTP-Posting-Host: zloty.daimi.aau.dk In-reply-to: bde@daimi.aau.dk's message of 26 Apr 1996 12:05:35 GMT X-Newsreader: Gnus v5.1 >>>>> "Bjarke" == Bjarke Dahl Ebert writes: Bjarke> Hejsa. Jeg ønsker at lave en specialisering af "Set", hvori Bjarke> elementer kan blive forældede. Det at afgøre om et element er Bjarke> forældet er et simpelt check, og forældede elementer skal Bjarke> simpelthen bare slettes fra Set'et helt transparant for Bjarke> brugeren af Set'et. Vi bygger altså en abstraktion ovenpå Bjarke> Set, hvorunder forældede elementer - set udefra - ikke Bjarke> eksisterer, selvom de rent "fysisk" altså ligger i Bjarke> strukturen. Bjarke> Vi ønsker ikke at løbe elementerne igennem i tide og utide Bjarke> for at se, om de skulle være forældede. Derimod ønsker vi at Bjarke> implementere denne forældelse på en "lazy" måde, således at Bjarke> forældede elementer slettes under scan og find, dvs. når Bjarke> set'et alligevel skal "bladres igennem". Bjarke> I forbindelse med denne sletning har jeg et spørgsmål: Er det Bjarke> lovligt at slette current[] fra et Set inde i en scan. Dvs.: Bjarke> er det f.eks. lovligt at skrive scan (# do current[]->delete Bjarke> #) ? Jeg kunne forestille mig problemer med at gå til næste Bjarke> element, når det nuværende er slettet. Bjarke> Mvh. Bjarke Uanset hvad, kan du jo istedet for at slette current i scan, smide de forældede elementer ind i en repetion eller container når set'et scannes. Så kan du viderbinde scan.end så den sletter elementerne i listen af forældede medlemmer. myscan: scan (# end:: (# do ForældetListe[]->FjernElementer; NONE->ForældetListe[]; INNER; #) do (if current[]->forældet then currnet[]->ForældetListe.insert if); INNER; #) /Peter -- Peter von der Ahe Ny Munkegade 101,1 tv, DK 8000 Aarhus C,Denmark Phone: +45 8613 2634, E-mail: pahe@daimi.aau.dk www: http://www.daimi.aau.dk/~pahe/