Re: Command Languages Versus Programming Languages

Liste des GroupesRevenir à cu programmer 
Sujet : Re: Command Languages Versus Programming Languages
De : 643-408-1753 (at) *nospam* kylheku.com (Kaz Kylheku)
Groupes : comp.unix.shell comp.unix.programmer comp.lang.misc
Date : 06. Apr 2024, 03:01:48
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <20240405175329.336@kylheku.com>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
User-Agent : slrn/pre1.0.4-9 (Linux)
On 2024-04-05, Alan Bawden <alan@csail.mit.edu> wrote:
Lawrence D'Oliveiro <ldo@nz.invalid> writes:
>
   On Fri, 5 Apr 2024 09:17:37 -0000 (UTC), Muttley wrote:
   ...
   >>    a =
   >>        b ?
   >>            c ? d : e
   >>        : f ?
   >>            g ? h : i
   >>        : j;
   >
   > Just use brackets. Saves a lot of pain.
>
       a=(b?(c?d:e):(f?(g?h:i):j));
>
A normal programmer would write something like:
>
    a = b ? (c ? d : e) :
        f ? (g ? h : i) :
        j;
>
I.e., she would allow herself to use spaces and newlines, and just
enough parentheses to make the structure clear.

It looks good, undeniably.

However, I cannot tell at a glance whether or not the nice appearance
isn't telling me some kind of lie. That's an inherent problem with
the ternary operator.

I have to remember that = has lower precedence than ?:. But, ==
has higher precedence. So this careless edit makes it wrong,
even though it still looks just as nice:

      a == b ? (c ? d : e) :
           f ? (g ? h : i) :
           j;

--
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
Mastodon: @Kazinator@mstdn.ca

Date Sujet#  Auteur
10 Nov 24 o 

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal