Liste des Groupes | Revenir à cu shell |
David Brown <david.brown@hesbynett.no> writes:OK. That's a lot more than I knew.On 03/04/2024 18:00, Keith Thompson wrote:[...]David Brown <david.brown@hesbynett.no> writes:Yes, but it's not the same thing. Perl has postfix conditionals, so you>That's probably the reason almost no one uses it. That post is theNo, Perl's conditional expressions use the same syntax as C's.
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.
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 "<do_this> if <condition>" as an
alternative to the more common imperative language ordering "if
<condition> then <do_this>".
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.)
https://perldoc.perl.org/perlsyn#Statement-ModifiersOf course we use the languages we use, warts and all. It's rare that anyone uses a language for a significant amount of work and doesn't dislike at least some aspects of the language.
I don't have a strong opinion one way or the other, beyond a willingnessAs for whether Python's conditional expression syntax, it's not>
clear
that (cond ? expr1 : expr2) is better or worse than (expr1 if cond else
expr2) (unless you happen to be familiar with one of them).
I think expr1 and expr2 belong naturally together, as you are
selecting one or the other. If you are using a short-circuit
evaluation, you would express it in words as "evaluate cond, and based
on that, evaluate either expr1 and expr2". Having "expr1" first is a
bit like a recipe that says "add the sugar to the egg whites, having
first beaten the egg whites". It is an ordering that does not suit
well in an imperative language (I know Python is multi-paradigm, but
it is basically imperative).
>
But I agree that familiarity could be a big factor in my subjective
opinion here.
to accept the syntax and other rules of whatever language I'm using.
But I suggest that Python's "expr1 if condition else expr2" is intendedPerhaps.
to emphasize expr1 over expr2, treating the condition being true as the
"normal" case. That's not necessarily a bad thing.
Les messages affichés proviennent d'usenet.