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 Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED.3d73Ybk3C5U4I2t8lv+lAQ.user.gioia.aioe.org!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Latest suggestion for 202x Date: Sat, 22 Jun 2019 08:54:34 +0200 Organization: Aioe.org NNTP Server Message-ID: 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> NNTP-Posting-Host: 3d73Ybk3C5U4I2t8lv+lAQ.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.7.2 X-Notice: Filtered by postfilter v. 0.9.2 Content-Language: en-US Xref: reader01.eternal-september.org comp.lang.ada:56707 Date: 2019-06-22T08:54:34+02:00 List-Id: 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 uses >>> 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 calls >> 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. > What about > record component selection? Same. It is not mapping of ordered 1st class object to 1st class object in this case, but surely the syntax sugar of record member selection must be same for records and functions. And it is, since Ada 2005 started to support dotted notation: R.X -- Record member *or* call to primitive X of R or ... > What operations *aren't* function calls? Ideally there should be none. All built-in syntax forms must be available for user-defined operations. Ada suffers greatly when it violates this design principle, e.g. consider "and then", "range", "in", "'Image" etc. > But please don't overestimate how much I care about this. In my > opinion, it's really not that big a deal. I personally like brackets > better than parentheses for array indexing, but I have no particular > problem with Ada's choice. In my view it is a language design problem. I have nothing against adding further types of brackets: {}, <>, || but they all must be user-defined. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de