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