プログラミング以外での三項演算子の使用について疑問に思っていました。たとえば、CS の学位を取得するために必要な厄介な微積分クラスなどです。1/x のような三項演算子を使用して、双曲線関数のようなものを説明できますか? 1/x : 無限; これは、x が正の浮動小数点数であると仮定し、x != 0 の場合、関数は 1/x を返し、それ以外の場合は無限大を返します。これは、制限の必要性全体を回避しますか?
2 に答える
私は特定の質問について完全に確信しているわけではありませんが、はい、「if/else」または「if and only if, else」として提起された質問には、三項式で答えることができます。ただし、伝統的に、数学は実際のフロー制御を伴う条件付き形式で記述されることはありません。「if」およびその他のフロー制御メカニズムにより、コードはさまざまな方法で実行されますが、ほとんどの数学では、フローは同じです。結果が違うだけ。
数学的には、どの演算子も関数として同等に記述できますa + b = add(a,b)
。これはプログラミングにも当てはまることに注意してください。どちらの場合でも、2 項演算子は読みやすいため、2 つの引数の関数を記述する一般的な方法です。
三項演算子は読みにくいため、一般的ではありません。しかし、数学的なタイポグラフィは 1 次元のテキスト文字列に限定されないため、多くの数学演算子には大きなアリティがあります。
2 番目の質問に答えるには: いいえ、これは制限の必要性を回避するものではありません。代わり42
にinfinity
.
とにかく、あなたの例は三項演算子1/x
のプログラミングの使用法と実際には一致しないことにも言及します。ブール値ではないことに?:
注意してください。1/x
例外のような条件を処理するために使用しようとしているようです。?:
これは、try/catch フォームにより適しています。
また、「これは x が正の浮動小数点であることを前提としています」と言うとき、読者はどのようにこれを知ることになっていますか? 上から限界を示すことによって、この特定の問題を解決する数学的表記法があることを思い出すかもしれません....