Deutsch   English   Français   Italiano  
<bf4e50819b1dcac5e7f689ad10b3a82e8fc82047@i2pn2.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder2.eternal-september.org!news.quux.org!news.nk.ca!rocksolid2!i2pn2.org!.POSTED!not-for-mail
From: fir <fir@grunge.pl>
Newsgroups: comp.lang.c
Subject: Re: else ladders practice
Date: Sun, 03 Nov 2024 14:39:38 +0100
Organization: i2pn2 (i2pn.org)
Message-ID: <bf4e50819b1dcac5e7f689ad10b3a82e8fc82047@i2pn2.org>
References: <3deb64c5b0ee344acd9fbaea1002baf7302c1e8f@i2pn2.org> <vg0t3j$2ruor$1@dont-email.me> <78eabb4054783e30968ae5ffafd6b4ff2e5a5f17@i2pn2.org> <vg2g37$37mh3$1@dont-email.me> <6724CFD2.4030607@grunge.pl> <vg2llt$38ons$1@dont-email.me> <2491a699388b5891a49ef960e1ad8bb689fdc2ed@i2pn2.org> <b681ee05856e165c26a5c29bf42a8d9d53843d6d@i2pn2.org> <vg2ttn$3a4lk$1@dont-email.me> <vg33gs$3b8n5$1@dont-email.me> <vg358c$3bk7t$1@dont-email.me> <vg37nr$3bo0c$1@dont-email.me> <vg3b98$3cc8q$1@dont-email.me> <vg5351$3pada$1@dont-email.me> <vg62vg$3uv02$1@dont-email.me> <6726C341.6030102@grunge.pl> <vg7opm$bejq$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Sun, 3 Nov 2024 13:39:42 -0000 (UTC)
Injection-Info: i2pn2.org;
	logging-data="754764"; mail-complaints-to="usenet@i2pn2.org";
	posting-account="+ydHcGjgSeBt3Wz3WTfKefUptpAWaXduqfw5xdfsuS0";
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:27.0) Gecko/20100101 Firefox/27.0 SeaMonkey/2.24
X-Spam-Checker-Version: SpamAssassin 4.0.0
In-Reply-To: <vg7opm$bejq$2@dont-email.me>
Bytes: 4368
Lines: 114

Bart wrote:
> On 03/11/2024 00:26, fir wrote:
>> Bart wrote:
>>>  ...
>>
>> as to this switch as i said the C jas some syntax that resembles
>> switch and it is
>>
>> [2] { printf("one"), printf("two"), printf("three") }
>>
>> i mean it is like this compound sometheng you posted
>>
>>   { printf("one"), printf("two"), printf("three") } [2]
>>
>>   but with "key" on the left to ilustrate the analogy to
>>
>> swich(n) {case 0: printf("one"); case 1: printf("two"); case 2:
>> rintf("three") }
>>
>> imo the resemblance gives to think
>>
>> the difference is this compound (array-like) example dont uses defined
>> keys so it semms some should be added
>>
>> [n] {{1: printf("one")},{2: printf("two")},{3: printf("three")} }
>>
>> so those deduction on switch gives the above imo
>>
>> the question is if some things couldnt be ommitted for simplicity
>>
>> [key] {'A': printf("one"); 'B': printf("two"); 'C': printf("three"}; }
>
>
>> something like that
>>
>> (insted of
>>
>> switch(key)
>> {
>> case 'A': printf("one"); break;
>> case 'B': printf("two"); break;
>> case 'C': printf("three"}; break;
>> }
>
>
> Here the switch looks clearer. Write it with 300 cases instead of 3,
> then that becomes obvious.
>

depend on what some understoods by clearer - imo not

this []{;;;} at least is like logically drawed from other c syntax

and switch case overally the word case is ok imo but the word switch is
overrally like wrong imo switch could be better replaced by two
word "select" and maybe "goto" as this swich that selects could use 
select and this one wgo does goto could use word goto

goto key;
'A': printf("a");
'B': printf("b");
'C': printf("c");
'

overally thete is lso possibility to do it such way

void foo()
{

"a" { printf("aaa"); } //definitions not calls itself
"b" { printf("bbb"); }
"c" { printf("ccc"); }


"a";"b";"c"; //calls (???)
// would need maybe some some syntax to call it (many could be chosen)

// "a"() ? foo."a" ? foo.[key] ?

maybe this woudl be the best if established as ths is more syntaktc "low 
lewel"

}









> The first time I wrote a big C program, I used a syntax like this:
>
>    switch (x)
>    when 'A', 'B' then printf("one")
>    when 'C'      then printf("two")
>    else               printf("three")
>    endsw
>
> This needed to be converted to normal C before compiling, but the macro
> system wasn't quite up to the job (making using gnu C which allows for
> lists of case labels).
>
> Instead I used a script to do the conversion, which needed 1:1 line
> correspondence. The result was something like this:
>
>    switch (x) {
>    break; case 'A': case 'B': printf("one");
>    break; case 'C': printf("two");
>    break; default:  printf("three");
>    }
>
>