Avaliação Preguiçosa (Lazy Evaluation)
Definição
Avaliação preguiçosa é uma estratégia de execução em que expressões não são avaliadas no momento em que são definidas, mas apenas quando (e se) seus valores forem realmente necessários.
Isso permite, por exemplo, trabalhar com listas infinitas ou adiar cálculos que talvez nunca precisem ser feitos.
Por que é importante
A avaliação preguiçosa pode melhorar a performance de um programa, evitando cálculos desnecessários. Também permite construir estruturas de controle mais flexíveis, como condicionais customizadas e fluxos de dados infinitos.
Vantagens e desvantagens
Vantagens:
Evita cálculos desnecessários
Permite trabalhar com coleções infinitas
Facilita composição de operações encadeadas
Desvantagens:
Dificulta o rastreamento de bugs, pois a execução é adiada
Consumo de memória pode ser imprevisível
Nem todas as linguagens suportam esse comportamento nativamente
Evita cálculos desnecessários
Permite trabalhar com coleções infinitas
Facilita composição de operações encadeadas
Dificulta o rastreamento de bugs, pois a execução é adiada
Consumo de memória pode ser imprevisível
Nem todas as linguagens suportam esse comportamento nativamente
Exemplo em código (Python)
def gerar_numeros():
print("Generator criado")
for i in range(10):
print(f"Gerando {i}")
yield i
numeros = gerar_numeros() # Nada é executado ainda
print("Antes do loop")
for n in numeros:
if n > 2:
break
print(f"Usando {n}")
Neste exemplo, a função gerar_numeros
é um generator. Nada é executado quando ela é criada. Os valores só são produzidos à medida que o loop consome — e o loop é interrompido no break
, então os valores de 3
em diante nunca são gerados.