|
|
|
|
|
by wahern
1066 days ago
|
|
yield and resume here aren't keywords, they're regular variables (referencing regular closures) given those names purely for pedagogical purposes. The only odd thing here is the creation and use of a cancel callback. I've not done much Go programming, so I don't know whether this is just a performance improvement to more quickly collect dropped iterator state, or it's a requirement because Go does not garbage collect goroutines waiting on channels for which the waiting goroutine has the only reference. In Lua you wouldn't need such a thing because coroutines/threads are GC'd like any other object--once all references are gone they're GC'd even if the last operation was a yield and not a return from the entry function. |
|