12

Ruby に継続を行わせる作業を行った人はいますか (Smalltalk の Seaside のように)。

4

4 に答える 4

12

はい、ほとんどの場合。MRI (1.8) は私の記憶が届く限りそれらをサポートしており、Ruby 1.9 (YARV) もサポートしており、Rubiniusもサポートしています。JRuby と IronRuby には継続がなく、それらが取得される可能性はほとんどありません (JVM と CLR はセキュリティのためにスタック インストロスペクションを使用します)。

言語としての Ruby は、callccキーワードによる継続をサポートします。たとえば、Generator標準ライブラリからクラスを実装するために使用されます。

ruby-doc の続き

継続ベースの Web フレームワーク (seaside や Arc の std. ライブラリのフレームワークなど) はあまり人気がないようです。オプションの継続を実行できると主張するウィーを見つけましたが、使用したことはありません。

于 2008-09-29T17:11:22.643 に答える
6

他の人がすでに言っているように、Ruby 1.8 は継続をサポートしています。

ただし、Ruby 1.9 ではしばらくサポートされていません。今年になって再び追加されましたが、他のほとんどの Ruby インタープリター (JRuby、IronRuby など) はそれらをサポートしていません。

メインラインの Ruby 以外のプラットフォームでコードを使用できるようにしたい場合は、それらを使用しないことをお勧めします。

このトピックに関するより包括的な議論については、この InfoQ 記事をお読みください。

于 2008-09-29T17:34:58.530 に答える
2

ところで、これは継続を使用して実装された再開可能な例外 (別名条件) の例です。数回使用しましたが、Ruby のツールボックスに入れておくと便利です。

于 2009-12-23T23:53:44.860 に答える
0

neverblockは、シングルスレッドのrubyWebサーバーに1.9ファイバーを使用します

于 2008-10-29T16:43:58.970 に答える