在smalltalk中如何实现协同程序?

在smalltalk中如何实现协同程序?,smalltalk,coroutine,Smalltalk,Coroutine,我可以在smalltalk中实现协同程序吗 如果你的答案是否定的:为什么不呢 或者,如果是,你能给我举个例子吗 大多数Smalltalk在thisContext对象上都有堆栈操作方法。您可以使用这些来实现协同路由,尽管在这个级别处理堆栈可能有点乏味 GNU Smalltalk和Squeak和Pharo的最新版本还提供了一个生成器类,可以轻松编写生成器(即生成多个值的协同程序类型): Cab您能给出更多解释吗?您知道Pharo 1.3是否也提供了生成器的实现?生成器已经进入Pharo 1.4。在答

我可以在smalltalk中实现协同程序吗

如果你的答案是否定的:为什么不呢


或者,如果是,你能给我举个例子吗

大多数Smalltalk在thisContext对象上都有堆栈操作方法。您可以使用这些来实现协同路由,尽管在这个级别处理堆栈可能有点乏味

GNU Smalltalk和Squeak和Pharo的最新版本还提供了一个生成器类,可以轻松编写生成器(即生成多个值的协同程序类型):


Cab您能给出更多解释吗?您知道Pharo 1.3是否也提供了生成器的实现?生成器已经进入Pharo 1.4。在答案中添加Pharo。
"This generator yield an infinite sequence of 1"
generator := Generator on: [ :gen | [ gen yield: 1 ] repeat ].

(1 to: 100) do: [:i | Transcript show: (generator next printString); cr]