Un generador es una función que produce valores de forma perezosa, uno a la vez, usando la palabra clave yield en lugar de return. Calcula cada valor bajo demanda en vez de construir el resultado completo en memoria — ideal para secuencias grandes o infinitas.
yield vs return
():
[i ** i (n)]
():
i (n):
i **
sq gen_squares():
(sq)
