coroutine (routine + co-): A piece of code that performs a task, and that can be passed new input and return output more than once