Gerador simples
Em código real, geradores são usados para processar grandes volumes de dados sem carregar tudo na memória, como ao ler arquivos enormes ou gerar sequências infinitas. Dominar o yield permite criar funções que produzem valores sob demanda, economizando recursos e melhorando a performance.
O PROBLEMA
Crie gerador pares_ate(n) com yield.
EXEMPLO
0 2 4 6 8 10
SOBRE O CONCEITO
Uma função geradora usa yield em vez de return para produzir uma sequência de valores, um de cada vez, mantendo seu estado entre chamadas. O erro comum é usar return com valor, o que transforma a função em uma função normal e encerra a execução imediatamente, impedindo a iteração contínua. Por exemplo, return n retornaria apenas um número e pararia; já yield n pausa a função e pode ser retomado pelo next(). No exercício, pares_ate(n) deve usar yield dentro de um for com range e if para filtrar pares, gerando cada par sob demanda.
RESOLUÇÃO