Ein Generator ist eine Verallgemeinerung einer Unterroutine, die hauptsächlich verwendet wird, um das Schreiben von Iteratoren zu vereinfachen. Die Yield-Anweisung in einem Generator gibt keine Coroutine an, zu der gesprungen werden soll, sondern gibt einen Wert an eine übergeordnete Routine zurück.