Dans les langues naturelles, nous disons "un peu de couleur est une couleur primaire si la couleur est rouge, bleu ou jaune."
Dans chaque langage de programmation que j'ai vu, cela se traduit par quelque chose comme:
isPrimaryColor = someColor == "Red" or someColor == "Blue" or someColor == "Yellow"
Pourquoi n'est-il pas une syntaxe qui correspond de plus près à la phrase anglaise. Après tout, on ne dit pas "un peu de couleur est une couleur primaire si la couleur est rouge, ou que la couleur est le bleu, ou que la couleur est jaune."
Je me rends compte tout simplement isPrimaryColor = someColor == ("Red" or "Blue" or "Yellow")
parce qu'au lieu de Rouge, de Bleu et de Jaune, ils pourraient être de type boolean déclaration, auquel cas la logique booléenne s'applique, mais que penser de quelque chose comme:
isPrimaryColor = someColor ( == "Red" or == "Blue" or == "Yellow")
Comme un bonus supplémentaire que la syntaxe de permettre plus de flexibilité, de dire que tu voulais voir si un nombre est compris entre 1 et 100 ou 1000 et 2000, on pourrait dire:
someNumber ((>= 1 and <=100) or (>=1000 and <=2000))
Edit:
Réponses très intéressantes, et le point de prise que je devrais apprendre plus de langues. Après avoir lu les réponses, je suis d'accord que pour un usage strictement comparaison d'égalité quelque chose de similaire pour définir l'appartenance est une façon claire et concise d'exprimer la même chose (pour les langues qui ont de support de langue pour concis inline listes ou des ensembles et des tests d'adhésion)
L'une des questions qui m'est venue est que si la valeur de comparaison est le résultat d'un calcul fastidieux une variable temporaire devrait être (bien, devrait être) créé. L'autre problème est qu'il peut y avoir différentes évaluations qui doivent être vérifiées, comme "le résultat d'un calcul fastidieux devraient être les premiers et entre 200 et 300"
Ces scénarios sont également couverts par plusieurs langages fonctionnels (bien que selon la langue ne peut pas être plus concis), ou de toute autre langue que peut prendre une fonction comme paramètre. Par exemple pour l'exemple précédent pourrait être
MeetsRequirements(GetCalculatedValue(), f(x):x > 200, f(x):x < 300, IsPrime)