4 ms·
Great write up - make that a rough draft for your post. I was going to edit my comment earlier to point out that coroutine is not generator. I realized this l
by crucialfelix 13y ago
Great write up - make that a rough draft for your post. I was going to edit my comment earlier to point out that coroutine is not generator.
I realized this limitation one day while trying to do it in python. You cannot just yield another stream.
SuperCollider has proper co-routines: http://danielnouri.org/docs/SuperColliderHelp/Core/Kernel/Routine.html http://danielnouri.org/docs/SuperColliderHelp/Core/Kernel/Ro...
and the pattern library is built entirely around embedding in streams and yielding others streams. it uses this for very interesting numeric music patterns.
Python 3.4 also now has co-routines:
https://docs.python.org/3.4/library/asyncio-task.html https://docs.python.org/3.4/library/asyncio-task.html
esp this is interesting:
result = yield from future – suspends the coroutine until the future is done, then returns the future’s result, or raises an exception, which will be propagated. (If the future is cancelled, it will raise a CancelledError exception.) Note that tasks are futures, and everything said about futures also applies to tasks.
result = yield from coroutine – wait for another coroutine to produce a result (or raise an exception, which will be propagated). The coroutine expression must be a call to another coroutine.
Javascript does/will have simple generators