Deutsch English Français Italiano |
<vbju6l$1sqao$2@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!news.mixmin.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Bart <bc@freeuk.com> Newsgroups: comp.lang.c Subject: Re: Top 10 most common hard skills listed on resumes... Date: Sun, 8 Sep 2024 11:27:33 +0100 Organization: A noiseless patient Spider Lines: 46 Message-ID: <vbju6l$1sqao$2@dont-email.me> References: <vab101$3er$1@reader1.panix.com> <valrj7$367a8$2@dont-email.me> <87mskwy9t1.fsf@bsb.me.uk> <vanq4h$3iieb$1@dont-email.me> <875xrkxlgo.fsf@bsb.me.uk> <vapitn$3u1ub$1@dont-email.me> <87o75bwlp8.fsf@bsb.me.uk> <vaps06$3vg8l$1@dont-email.me> <871q27weeh.fsf@bsb.me.uk> <20240829083200.195@kylheku.com> <87v7zjuyd8.fsf@bsb.me.uk> <20240829084851.962@kylheku.com> <87mskvuxe9.fsf@bsb.me.uk> <vaq9tu$1te8$1@dont-email.me> <vbci8r$1c9e8$1@paganini.bofh.team> <vbcs65$eabn$1@dont-email.me> <vbekut$1kd24$1@paganini.bofh.team> <vbepcb$q6p2$1@dont-email.me> <vbj6ii$1q6mh$1@dont-email.me> <20240908115827.00007521@yahoo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Sun, 08 Sep 2024 12:27:34 +0200 (CEST) Injection-Info: dont-email.me; posting-host="ad79b9a69b5377684053ea6685c7dbff"; logging-data="1993048"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19TJk9SQY2s260ASUpM/9L+" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:jFmc2Y3F1h2fW1VeYwIu2iQRirU= In-Reply-To: <20240908115827.00007521@yahoo.com> Content-Language: en-GB Bytes: 2954 On 08/09/2024 09:58, Michael S wrote: > On Sun, 8 Sep 2024 05:44:16 +0200 > Janis Papanagnou <janis_papanagnou+ng@hotmail.com> wrote: > >> On 06.09.2024 13:34, Bart wrote: >>> >>> In more complicated cases in languages, then some asymmetry does >>> come up. For example, suppose C allowed this (my language allows the >>> equivalent): >>> >>> (c ? a : b) = x; >> >> In Algol 68 you can write >> >> IF c THEN a ELSE b FI := x >> >> or, in a shorter form, as >> >> ( c | a | b ) := x >> >> if you prefer. >> > > Are you sure? > It seems to me that you got it backward. > The point here is that you can write such a 2-way select on the LHS of an assignment. C doesn't allow that unless you wrap it up as a pointer expression: *(c ? &a : &b) = x; In language like C, the LHS of an assignment is one of four categories: A = Y; // name *X = Y; // pointer X[i] = Y; // index X.m = Y; // member select A is a simple variable; X represents a term of any complexity, and Y is any expression. (In C, the middle two are really the same thing.) Some languages allow extra things on the LHS, but in C they can be emulated by transforming the term to a pointer operation. In the same it can emulate pass-by-reference (which objects which are not arrays!)