自然言語では、「色が赤、青、または黄色の場合、一部の色は原色です」と言います。
私が見たすべてのプログラミング言語では、それは次のようなものに変換されます。
isPrimaryColor = someColor == "Red" or someColor == "Blue" or someColor == "Yellow"
英語の文により近い構文がないのはなぜですか。結局のところ、「その色が赤、その色が青、またはその色が黄色の場合、ある色が原色である」とは言えません。
赤青と黄色の代わりにブールステートメントである可能性があるため、私は単純に理解isPrimaryColor = someColor == ("Red" or "Blue" or "Yellow")
しています。その場合、ブール論理が適用されますが、次のようなものはどうでしょうか。
isPrimaryColor = someColor ( == "Red" or == "Blue" or == "Yellow")
構文がより柔軟になるという追加のボーナスとして、たとえば、数値が1から100の間か、1000から2000の間かを確認したい場合は、次のように言うことができます。
someNumber ((>= 1 and <=100) or (>=1000 and <=2000))
編集:
非常に興味深い答えであり、私はもっと多くの言語を学ぶべきだという点を指摘しました。回答を読んだ後、厳密に同等の比較のために、セットメンバーシップに似たものが同じことを表現する明確で簡潔な方法であることに同意します(簡潔なインラインリストまたはセットを言語サポートし、メンバーシップをテストする言語の場合)
発生した問題の1つは、比較する値が高価な計算の結果である場合、一時変数を作成する必要がある(まあ、作成する必要がある)ということです。もう1つの問題は、「高価な計算の結果は素数であり、200から300の間である必要がある」など、チェックする必要のあるさまざまな評価が存在する可能性があることです。
これらのシナリオは、より機能的な言語(言語によってはより簡潔ではない場合もあります)、または実際にはパラメーターとして関数をとることができる任意の言語によってもカバーされます。たとえば、前の例は次のようになります。
MeetsRequirements(GetCalculatedValue(), f(x):x > 200, f(x):x < 300, IsPrime)