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