Все мы знаем о коротком замыкании в логических выражениях, то есть, когда
if ( False AND myFunc(a) ) then
...
не беспокоит выполнение myFunc ()
, потому что не существует условия if
может быть правдой.
Мне было любопытно, есть ли эквивалент для вашего повседневного алгебраического уравнения, скажем
result = C*x/y + z
Если C = 0
, нет смысла оценивать первый член. С точки зрения производительности не имело бы большого значения, если бы x
и y
были скалярами, но если мы представим, что это большие матрицы, а операции являются дорогостоящими (и применимы к матрицам), тогда, конечно, это будет иметь значение. Конечно, вы можете избежать такого крайнего случая, добавив оператор if C! = 0
.
Итак, мой вопрос в том, существует ли такая функция и полезна ли она. Я не особо разбираюсь в программировании, так что, вероятно, под каким-то именем, с которым я не сталкивался; если да, то просветите меня, пожалуйста :)