| Deutsch English Français Italiano |
|
<vtf7fe$1qtpg$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Janis Papanagnou <janis_papanagnou+ng@hotmail.com>
Newsgroups: comp.lang.c
Subject: Re: do { quit; } else { }
Date: Sun, 13 Apr 2025 04:27:57 +0200
Organization: A noiseless patient Spider
Lines: 111
Message-ID: <vtf7fe$1qtpg$1@dont-email.me>
References: <vspbjh$8dvd$1@dont-email.me> <vt31m5$2513i$1@dont-email.me>
<vt3d4g$2djqe$1@dont-email.me> <vt3iqh$2ka99$1@dont-email.me>
<vt5fed$ccri$1@dont-email.me> <vt5js2$g1t7$1@dont-email.me>
<20250409142303.00004645@yahoo.com> <87ikndqabc.fsf@nosuchdomain.example.com>
<20250410115501.000037a5@yahoo.com> <vt8ei8$2vn84$1@dont-email.me>
<20250410080629.532@kylheku.com> <vt94q5$3jjod$1@dont-email.me>
<vt9628$3hhr8$3@dont-email.me> <vtammh$174ev$1@dont-email.me>
<vtavn9$1dp7m$3@dont-email.me> <vtb8nv$1plb2$2@dont-email.me>
<vtba81$1qfbm$1@dont-email.me> <vtbc6o$1te2o$1@dont-email.me>
<vtbhjv$24api$1@dont-email.me> <vtbn2k$293r1$1@dont-email.me>
<vtc19j$2kqlj$1@dont-email.me> <87a58mqt2o.fsf@nosuchdomain.example.com>
<vtc7mp$2q5hr$1@dont-email.me> <vtcqf6$3j95s$1@dont-email.me>
<vtdh4q$b3kt$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 13 Apr 2025 04:28:13 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="37bc21190f4ec23076b19d75e9f1a003";
logging-data="1931056"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/jElcgQdn1TJBevy6b/MAG"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101
Thunderbird/45.8.0
Cancel-Lock: sha1:WeEtQfEQRAaysTBfHVtBTC7rxiw=
X-Enigmail-Draft-Status: N1110
In-Reply-To: <vtdh4q$b3kt$1@dont-email.me>
Bytes: 5961
On 12.04.2025 13:00, bart wrote:
> On 12/04/2025 05:33, Janis Papanagnou wrote:
>> [ 'typedef' composition/decomposition for complex declarations ]
>
> This is a third kind of workround. All of them should be unnecessary.
> Unless the type really is complicated and needs to be decomposed anyway,
> whatever the syntax.
Well, yes. If you have a somewhat [IMO] convoluted syntax then you
pick your language choices to address it and do the best out of it.
> [...]
>
> But I also 100% hate its syntax and various other bits and pieces. (OK,
> about 80% then.)
(I also don't like its syntax too much. I think I'm just complaining
less than you about that. BTW, I've got the impression that all the
shortcomings of "C" are well known by most regulars here; they just
handle these facts in discussions differently than you.)
> [...
>
> And APIs use C type syntax. So, yeah, I am entitled to an opinion about it.
That's fine. Although those repeated complaints also annoy me. (But
that's my problem, of course.)
> [...]
>
>> Guessing: An array with 10 elements that are pointers to functions
>> that take an 'int' parameter and return an 'int' value?
>>> [...]
>>
>> (This opening parenthesis syntactically indicates the function, as
>> also indicated by the numberings above. - Or so I'd think. - No?)
>
> Not necessarily. This is a valid declaration in C:
>
> int (A);
>
> That opening parentheses is just noise. (I guess you just learned
> something new about C today?)
Not really. - I was merely pointing out that the messages you posted
made sense to me; where I had the impression you were confused about
it.
>
>> Assumed that my guess above was correct that's quite equivalent to
>> the Algol 68 form
>>
>> [10] REF PROC (INT) INT a
>
> So you do get it (maybe I should have read this far first). Yes, it
> directly comes from Algol68.
>
> But left-to-right type specifications must be common now everywhere.
Not sure. A more regular syntax is at least something I appreciate a
lot. (That' why, maybe many months ago, I spoke here about Algol 68
as one the formally most consistent languages, and that I like it a
lot because of that.)
>
>> but in Algol 68 you'd probably rather use it without the unnecessary
>> "pointer"/reference just as in
>>
>> [10] PROC (INT) INT a
>>
>> which - as you seem to like clearness - is even simpler!
>
> This is not as clear; the intent is to have a reference to a function;
> not an array of actual functions. For example:
>
> []ref func(int) int := (F, G, H)
>
> It is initialised to functions F, G, H which are defined elsewhere.
In Algol 68 I can just write (without 'REF'), for example,
[10] PROC (INT) INT apfii;
PROC one_less = (INT i) INT : i-1;
PROC one_more = (INT i) INT : i+1;
apfii[2:3] := ( one_less, one_more );
We don't need "pointers" (or references) which don't contribute to the
clearness of the semantics for this purpose - 'REF's are used for other
things -, for the case here they'd rather introduce low-level mechanics
unnecessarily in the application. - Just saying. (I'm not intending to
complain in that respect about "C" or about "your language". I'm merely
reporting some simple facts about it.) - So the 'ref' necessity in your
language may look clear to you but for me it's just obscuring ballast.
> Maybe in Algol68 you can have actual function definitions in that list.
Yes. It makes no sense to unnecessarily expose low-level implementation
mechanics to the programmer. (I think Algol 68 does that quite well.)
> But not in mine, which was created as a leaner, simpler and more
> transparent systems language.
We obviously disagree about the "transparence". I prefer languages that
don't make me have to use unnecessarily low-level mechanics. There's no
necessity of "ref" here; that's a problem of (or a "solution" or maybe
"workaround" in, or a design decision of) your language. - But as many
others here, I anyway don't care much about other's personal languages.
Janis