Path: csiph.com!news.swapon.de!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.unix.shell,comp.unix.programmer,comp.lang.misc Subject: Re: Command Languages Versus Programming Languages Date: Wed, 03 Apr 2024 12:58:49 -0700 Organization: None to speak of Lines: 53 Message-ID: <87cyr6jk06.fsf@nosuchdomain.example.com> References: <20240329084454.0000090f@gmail.com> <20240329101248.556@kylheku.com> <20240329104716.777@kylheku.com> <20240330112105.553@kylheku.com> <87r0fp8lab.fsf@tudado.org> <87wmpg7gpg.fsf@tudado.org> <87plv6jv1i.fsf@nosuchdomain.example.com> <87le5ujrd0.fsf@nosuchdomain.example.com> MIME-Version: 1.0 Content-Type: text/plain Injection-Date: Wed, 03 Apr 2024 19:58:55 +0200 (CEST) Injection-Info: dont-email.me; posting-host="a67faaad1a2f17d94ae762a9e9871bf2"; logging-data="145077"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18C4OrfozQ/baDq2xhrk8ry" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) Cancel-Lock: sha1:ZEcDHO/5mKZfoRxARyxuJ/V8sFU= sha1:4xfO4EBhmeMCZljm4SSORw9NFAo= Xref: csiph.com comp.unix.shell:24932 comp.unix.programmer:15679 comp.lang.misc:10353 David Brown writes: > On 03/04/2024 19:19, Keith Thompson wrote: >> David Brown writes: >>> On 03/04/2024 18:00, Keith Thompson wrote: >>>> David Brown writes: >> [...] >>>>> That's probably the reason almost no one uses it. That post is the >>>>> first time I have ever seen conditional expressions outside of a brief >>>>> mention in a tutorial on Python conditionals showing how to write >>>>> normal conditionals in the language. I think Python stole this one >>>>> from Perl. >>>> No, Perl's conditional expressions use the same syntax as C's. >>> >>> I am not very familiar with Perl, and don't know what are expressions >>> or statements. Perhaps I have been imagining things. I had the idea >>> that in Perl you could write " if " as an >>> alternative to the more common imperative language ordering "if >>> then ". >> Yes, but it's not the same thing. Perl has postfix conditionals, so >> you >> can write: >> statement if condition; >> but that's a statement, not an expression, and there's no form >> equivalent to if/else. It's a specific case of "statement modifiers", >> where the keyword can be any of if, unless, while, until, for, foreach, >> or when. (The latter is for an experimental "switch" feature, disabled >> by default in recent releases.) > > OK. That's a lot more than I knew. > > However, I don't see a relevant distinction between a statement and an > expression as particularly significant here, at least in terms of code > clarity. One distinction is that, for example, you can't use statement if condition; as part of a larger expression. Also, there's no else clause. Perl's statement modifiers are an alternative syntax for conditional *statements*. In particular, `statement if condition;` is equivalent to `if (condition) { statement; }`. Their purpose is to allow some code to be written more concisely. (Note that an if statement or other compound statement requires { and }.) Perl adopted C's ?: syntax for conditional expressions with little or no change. [...] -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com Working, but not speaking, for Medtronic void Void(void) { Void(); } /* The recursive call of the void */