symmetric v.s. asymmetric coroutine

关于coroutine的词汇非常混乱,就连coroutine本身也没有一个唯一的公认定义。the fundamental characteristics of a coroutine (Marlin要求):[1]

stackful v.s. stackless coroutine

counterStyles[“fig”] = {locale:”en-US”}

coroutine (协程)是一般function的泛化。[1]一般function一旦开始运行,就必须运行到return(或抛出异常)。coroutine除了可以开始运行和return,还能在[……]

继续阅读

yield随想

C#、Python程序中可以写yield指令,这样程序的执行权就暂时交出去了,等另一方运行完成后再回来。设当前方法为f,f可以集中处理资源创建和销毁,资源创建完成后,用yield指令把资源交给另一个方法。

C#实现如下。f为包含yield的方法,File类代表对外部资源的封装。f的方法体集中处[……]

继续阅读