A type of Iterator function that returns values one-by-one while allowing return back to the caller. Often uses a yield keyword to return without ending the function.

Implementations