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