Alguma diferença entre a avaliação preguiçosa e a avaliação de curto-circuito?
Da Wikipedia:
Na teoria da linguagem de programação, a avaliação preguiçosa ou a chamada por necessidade é uma estratégia de avaliação que retarda a avaliação de uma expressão até que seu valor seja necessário.
Avaliação de curto-circuito é:
Avaliação de curto-circuito, avaliação mínima ou avaliação de McCarthy denota a semântica de alguns operadores booleanos em algumas linguagens de programação nas quais o segundo argumento é executado ou avaliado apenas se o primeiro argumento não for suficiente para determinar o valor da expressão
Então, qual é a diferença entre eles, por exemplo, quando eu tenho:
if(false && true && true) {
//boo
}
Tanto quanto eu sei, o compilador não executa expressões depoisfalse
porque eu tenho&&
então toda a expressão seráfalse
finalmente. (certo?)
Então é esse comportamento chamadoAvaliação preguiçoso ouAvaliação de curto-circuito?