comp.lang.ada
 help / color / mirror / Atom feed
From: Keith Thompson <kst-u@mib.org>
Subject: Re: Latest suggestion for 202x
Date: Sat, 22 Jun 2019 10:44:00 -0700
Date: 2019-06-22T10:44:00-07:00	[thread overview]
Message-ID: <lnr27likgv.fsf@kst-u.example.com> (raw)
In-Reply-To: qekjbb$vu0$1@gioia.aioe.org

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
> On 2019-06-21 22:24, Keith Thompson wrote:
>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> 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.

I disagree.  Array indexing operations refer to elements of an array
object.  Function calls yield a value, and can have side effects.

>> 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 ...

So would you prefer "R.X" to be written as "R(X)" (or perhaps "X(R)")?

>> 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.

If you want Lisp, you know where to find it.

>> 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.

-- 
Keith Thompson (The_Other_Keith) kst-u@mib.org  <http://www.ghoti.net/~kst>
Will write code for food.
void Void(void) { Void(); } /* The recursive call of the void */

  parent reply	other threads:[~2019-06-22 17:44 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-15 23:59 Latest suggestion for 202x Micah Waddoups
2019-06-16  5:14 ` Jerry
2019-06-16  7:17 ` Dmitry A. Kazakov
2019-06-16 10:22 ` Egil H H
2019-06-16 16:54   ` Maciej Sobczak
2019-06-16 20:09     ` Dmitry A. Kazakov
2019-06-17  6:54     ` Egil H H
2019-06-17  7:42       ` J-P. Rosen
2019-06-17 12:01     ` Mart van de Wege
2019-06-17 13:35       ` Maciej Sobczak
2019-06-17 15:20         ` Dmitry A. Kazakov
2019-06-17 15:32           ` Paul Rubin
2019-06-17 16:43             ` Dmitry A. Kazakov
2019-06-17 21:38           ` Keith Thompson
2019-06-18 15:48             ` Jeffrey R. Carter
2019-06-20 22:21             ` Randy Brukardt
2019-06-21  9:42               ` Dmitry A. Kazakov
2019-06-21 18:12                 ` Keith Thompson
2019-06-21 18:43                   ` Dmitry A. Kazakov
2019-06-21 20:24                     ` Keith Thompson
2019-06-22  6:54                       ` Dmitry A. Kazakov
2019-06-22  8:43                         ` Randy Brukardt
2019-06-22  9:00                           ` Dmitry A. Kazakov
2019-06-22 17:44                         ` Keith Thompson [this message]
2019-06-22 18:34                           ` Bill Findlay
2019-06-22 18:37                           ` Dmitry A. Kazakov
2019-06-23  7:38                             ` G.B.
2019-06-23  8:29                               ` Dmitry A. Kazakov
2019-06-23 18:34                               ` Optikos
2019-06-23 19:20                                 ` Dennis Lee Bieber
2019-06-22 20:48                           ` Optikos
2019-06-22 20:53                             ` Optikos
2019-06-23 17:42                             ` Dennis Lee Bieber
2019-06-24  5:07                               ` J-P. Rosen
2019-06-24  5:40                                 ` Paul Rubin
2019-06-24  7:16                                   ` Niklas Holsti
2019-06-26 18:00                                     ` Stephen Leake
2019-06-24 13:07                                   ` J-P. Rosen
2019-06-24 11:12                                 ` Stefan.Lucks
2019-06-24 12:06                                   ` Niklas Holsti
2019-06-24 20:22                                     ` Randy Brukardt
2019-06-24 20:32                                       ` Keith Thompson
2019-06-24 20:47                                       ` Jeffrey R. Carter
2019-06-24 13:10                                   ` J-P. Rosen
2019-06-22  8:36                   ` Randy Brukardt
2019-06-22 17:39                     ` Keith Thompson
2019-06-16 19:34 ` Optikos
2019-06-16 20:10   ` John Perry
2019-06-16 20:57     ` Optikos
2019-06-16 21:36       ` Dmitry A. Kazakov
2019-06-17 16:48     ` G. B.
2019-06-17 17:12     ` Paul Rubin
2019-06-16 21:41 ` Lucretia
2019-06-19  2:36 ` Micah Waddoups
2019-06-19 11:14   ` Lucretia
2019-06-19 11:45     ` briot.emmanuel
2019-06-19 14:34       ` Optikos
2019-06-19 19:29         ` Lucretia
2019-06-19 16:12   ` G. B.
2019-06-23 20:17 ` Per Sandberg
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox