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
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.