Ruby中的延续

Jef*_*zer 12 ruby continuations

有没有人做过工作让Ruby继续做(如Seasto on Smalltalk)?

Krz*_*Goj 12

是的,在大多数情况下.MRI(1.8)支持他们,就我的记忆而言,Ruby 1.9(YARV)也是如此,Rubinius 也是如此.JRuby和IronRuby没有延续,并且他们不太可能得到它们(JVM和CLR使用堆栈检测安全性)

Ruby作为一种语言通过callcc关键字支持continuation .例如,它们用于Generator从标准库实现类.

关于ruby-doc的延续

基于连续性的Web框架(如海边或Arc的标准库中的一个)似乎不太受欢迎.我发现凌晨,声称让你做可选的延续,但我从来没有使用过它.


web*_*mat 6

正如其他人已经说过的那样,Ruby 1.8支持延续.

但是,Ruby 1.9暂时不支持它们.它们已经在今年的某个时候被添加回来,但是大多数其他Ruby解释器(JRuby,IronRuby等)都不支持它们.

如果您希望代码可以在主线Ruby之外的其他平台上使用,我建议不要使用它们.

阅读此InfoQ文章,以获得有关该主题的更全面的讨论.