Smalltalk中协程是如何实现的?
我可以在smalltalk中实现协程吗?
如果你的答案是否定的:为什么不呢?
或者如果是的话:你能给我举个例子吗?
Can I implement coroutines in smalltalk?
If your answer is no: why not?
Or if its yes: can you give me an example?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
大多数 Smalltalk 在 thisContext 对象上都有堆栈操作方法。您可以使用它们来实现协程,尽管在此级别处理堆栈可能有点乏味。
GNU Smalltalk 以及最新版本的 Squeak 和 Pharo 还提供了一个 Generator 类,可以轻松编写生成器(即生成多个值的协程类型):
Most Smalltalk have stack manipulation methods on the thisContext object. You could use these to implement coroutines though dealing with the stack at this level may prove a bit tedious.
GNU Smalltalk and recent versions of Squeak and Pharo also offer a Generator class that makes it easy to write generators (i.e. types of coroutine that yield multiple values):