Есть ли разница между ленивой оценкой и оценкой короткого замыкания?
Из Википедии:
Ленивая оценка является:
В теории языка программирования ленивая оценка или вызов по необходимости - это стратегия оценки, которая задерживает оценку выражения до тех пор, пока не потребуется его значение.
Оценка короткого замыкания является:
Оценка короткого замыкания, минимальная оценка или оценка Маккарти обозначает семантику некоторых логических операторов в некоторых языках программирования, в которых второй аргумент выполняется или оценивается только в том случае, если первого аргумента недостаточно для определения значения выражения.
Так в чем же разница между ними, например, когда у меня есть:
if(false && true && true) {
//boo
}
Насколько я знаю, компилятор не выполняет выражения послеfalse
потому что у меня есть&&
так что все выражение будетfalse
наконец-то. (правильно?)
Так называется ли это поведениеЛенивая оценка или жеОценка короткого замыкания?