From mboxrd@z Thu Jan 1 00:00:00 1970 Path: eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Ichbiah 2022 compiler mode Date: Sat, 14 Sep 2024 01:18:25 -0500 Organization: A noiseless patient Spider Message-ID: References: Injection-Date: Sat, 14 Sep 2024 08:18:30 +0200 (CEST) Injection-Info: dont-email.me; posting-host="252dd07fce3ba32f52749428b1b0da73"; logging-data="1410680"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/1vYzA54ekUOh0rgRLMCgmS19zsxi16ZE=" Cancel-Lock: sha1:wh635Ey21xqEEwlMVZ4qf4nrjJg= X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Original X-Priority: 3 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.7246 X-MSMail-Priority: Normal Xref: news.eternal-september.org comp.lang.ada:66369 List-Id: "Lawrence D'Oliveiro" wrote in message news:vbvpmt$esm6$7@dont-email.me... > On Wed, 11 Sep 2024 23:39:27 -0500, Randy Brukardt wrote: > >> "Lawrence D'Oliveiro" wrote in message >> news:vbdk2t$hj0r$6@dont-email.me... >>> On Thu, 5 Sep 2024 19:03:22 -0500, Randy Brukardt wrote: >> ... >>>> (10) Variable-returning functions are introduced. >>> >>> Is this like updater functions in POP-11, or "setf" in Lisp? >> >> No, it is a function that returns a variable, meaning you can assign >> into the function result. > > I think an updater function would be more generally useful. Because some > things you want to update might not (depending on the implementation) live > independently in an explicit variable. And it seems good not to constrain > implementations unnecessarily. Unfortunately, "updater" functions don't work with the Ada model of components, because you can't tell what to do when a component appears or disappears in an assignment. (That's why Ada doesn't allow overloading ":=".) And composition is very important to Ada -- stand-alone objects are pretty rare outside of those for scalar types. I don't think something that only worked with stand-alone objects would be very useful (can't use those with ODTs, for instance).. Randy.