は、我々は、すべての短絡乗算のようなものはありますか?
if (False AND myFunc(a)) then
...
がif
条件が真であることができる方法はありませんので、myFunc()
を実行する気にしない、すなわち、論理式には約短絡を、知っています。
私はあなたの毎日の代数方程式の等価があるかどうかについての興味があった最初の項を評価するにはポイントがないC=0
場合、
result = C*x/y + z
を言います。 x
とy
がスカラーであったとしてもパフォーマンスはあまり重要ではありませんが、私たちが大きい行列であり、操作がコストがかかり(行列にも適用可能です)、確かに違いがあります。もちろん、if C!=0
ステートメントを投げることで、このような極端なケースを避けることができます。
私の質問は、そのような機能が存在し、有用かどうかということです。私はあまりプログラマーではないので、おそらく私が出会ったことのないいくつかの名前の下にあります。もし私に教えてください:)
論理短絡が機能の観点から重要な概念であります機能的な違いがないコンパイラレベルでの最適化です。気づかないうちに選択した言語がすでに舞台裏でやっているかもしれません。 – deceze
私よりもよく知っている人は答えなければならないが、もしあなたが部門を短絡させるならば、あなたが問題に遭うと思うだろう。たとえば、y = 0の場合はどうなりますか?短絡した場合は、答えが実際にエラーであるときに0を返します。 – Nate
@deceze論理的な短絡と同じように、算術的な短絡は実際には最適化を超えた機能的な違いがあります。 'result = C * myfunction()'を考えてみましょう。算術式を短絡させる 'C == 0'の場合、' myfunction'は決して呼び出されません。副作用が発生していなくても(論理的な短絡の場合と同様に)、 –