Un generatore è una generalizzazione di una subroutine, utilizzata principalmente per semplificare la scrittura di iteratori. L'istruzione yield in un generatore non specifica una coroutine a cui saltare, ma piuttosto restituisce un valore a una routine padre.