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=unavailable autolearn_force=no version=3.4.4 X-Received: by 2002:ac8:2bdc:: with SMTP id n28mr85750067qtn.197.1561236507343; Sat, 22 Jun 2019 13:48:27 -0700 (PDT) X-Received: by 2002:aca:f256:: with SMTP id q83mr6288864oih.99.1561236507048; Sat, 22 Jun 2019 13:48:27 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!weretis.net!feeder6.news.weretis.net!feeder.usenetexpress.com!feeder-in1.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!m24no6739099qtm.0!news-out.google.com!4ni335qtw.1!nntp.google.com!m24no6739092qtm.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Sat, 22 Jun 2019 13:48:26 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=47.185.234.171; posting-account=zwxLlwoAAAChLBU7oraRzNDnqQYkYbpo NNTP-Posting-Host: 47.185.234.171 References: <728c4668-8fa0-4a57-a502-2bf476fc3940@googlegroups.com> <4908c3e3-18dc-4953-bf26-46f160d2ebfd@googlegroups.com> <9dcf22a2-2255-4089-b1f0-93e31448415e@googlegroups.com> <86h88obeu0.fsf@gaheris.avalon.lan> <39e749cd-de5c-44fa-b8ec-50d36f3bd52c@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: Latest suggestion for 202x From: Optikos Injection-Date: Sat, 22 Jun 2019 20:48:27 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Xref: reader01.eternal-september.org comp.lang.ada:56716 Date: 2019-06-22T13:48:26-07:00 List-Id: On Saturday, June 22, 2019 at 12:44:01 PM UTC-5, Keith Thompson wrote: > "Dmitry A. Kazakov" writes: > > On 2019-06-21 22:24, Keith Thompson wrote: > >> "Dmitry A. Kazakov" writes: > >>> On 2019-06-21 20:12, Keith Thompson wrote: > >>>> I *can't* replace A by a function without modifying the code that us= es > >>>> it. > >>> > >>> In short if I can't do something then I don't need it, sour grapes... > >>> > >>>> I suppose containers weaken that argument > >>> > >>> No, it is no argument regardless. > >>> > >>> If Ada has problems with array abstraction, and it has, that is > >>> irrelevant to the point that this is the *same* abstraction. > >>> > >>> A language that syntactically distinguish array calls and function ca= lls > >>> breaks the abstraction or lacks it completely. > >> > >> Is breaking that abstraction such a bad thing? > > > > Yes, because abstraction is useful. Arrays have no "physical" > > meaning. It is always an artifact of software design, some > > implementation detail, not to expose. > > > >> Why *should* array > >> indexing and function calls be treated as the same thing? > > > > Because they model the same thing, a mapping, when arrays come in > > consideration. >=20 > I disagree. Array indexing operations refer to elements of an array > object. Function calls yield a value, and can have side effects. It appears that it was the European predecessor languages of Algol58 that i= ntroduced the [ ] notation for subscripts in imperative programming languag= es. The IBM-dominated Americans utilized ( ) notation for subscripts in al= l of their languages up to that point (and counting PL/I and Ada, a little = beyond). Without mentioning array-subscripting syntax per se, tne of the p= rincipal contributors to Algol58 mentions this European-vs-American rivalry= on page 12 of: https://web.archive.org/web/20120422070035/http://conservancy.umn.edu/bitst= ream/107106/1/oh128flb.pdf Hence, we have the pro-IBM [ ] syntax (e.g., Fortran, Cobol, PL/I, CHILL, A= da) versus the pro-Algol58 ( ) syntax (Algol58, Algol60, Algol68, CPL, BCPL= , C) rivalry playing out 6 decades later in this thread. What seems almost shockingly peculiar to me is that France-based Green Team= chose the American-oriented pro-IBM [ ] syntax instead of their favorite-s= on European ( ) syntax. (ITU's European-PTT-centric CCITT choosing to foll= ow PL/I's lead on ( ) array subscripting syntax in the Ccitt HIgh Level Lan= guage is no surprise at all since so much of CHILL is obviously designed by= full-fledged unashamed IBM-lovers.) By the late 1970s, there obviously wa= s more to the brackets-versus-parentheses rivalry than mere trans-Atlantic = geography, as it seems to be during the 1950s (e.g., ZMMD's languages and A= lgol60 versus Fortran and Cobol) and 1960s (e.g., Algol60 and Simula versus= PL/I). I strongly suspect that the European natural continent-wide embrac= e of [ ] notation for some sort of =E2=80=A2=E2=80=A2index register=E2=80= =A2=E2=80=A2 has a bracket-based syntactic antecedent in assembly languages= on European computers (e.g., Zuse? in West Germany) during the 1950s that = was absent in American computers' assembly languages during that same perio= d, hence why ZMMD naturally gravitated strongly toward [ ] brackets whereas= IBM-oriented Americans did not (and apparently gravitated by default towar= d mathematics' notation for f(x) itemized-inventory discrete functions as t= he closest analogous notation in mathematics when utilizing arrays as looku= p tables [LUTs]).