Я не уверен, что понимаю, что вы ожидаете в ответ на вопрос.
Но легко определить разницу между оценкой короткого замыкания и строгим порядком оценки.
Рассмотрим утверждение:
b = f(a) + g(a)
На языке, который гарантирует строгий порядок слева направо (например, Java), функция f
будет вызываться перед функцией g
, но * обе функции будут вызываться всегда.
С другой стороны, с выражением
b = f(a) || g(a)
f
будет вызван первым, но вполне возможно, что g
не будет называться. Оценка может остановиться после возврата f
, если она возвращает истинное значение.
Существуют также языки, такие как C, которые не гарантируют оценку слева направо. На тех языках, когда оценивается f(a) + g(a)
, возможно, что g
вызывается до f
. Но оценка короткого замыкания (с логическими операторами) работает так же, потому что оценка короткого замыкания должна быть строго упорядочена.