ruby-reference-manual:1654
From: 5 5 <redmine@r...>
Date: Wed, 19 Aug 2009 12:52:43 +0900
Subject: [ruby-reference-manual:1654] [Bug #1958] class Fiber の「ショートチュートリアル」
Bug #1958: class Fiber の「ショートチュートリアル」 http://redmine.ruby-lang.org/issues/show/1958 起票者: 5 5 ステータス: Open, 優先度: Low カテゴリ: doc reporter: 5.5, ruby_version: 1.9 ファイバーの理解でつまずく最初のポイントは,ファイバー親子間の値のやりとりだと思います。そこで,ショートチュートリアルの最初の実行例は, ・ブロックパラメーター ・Fiber#resume の引数と返り値 ・Fiber.yield の引数と返り値 ・ブロックの評価値 がすべて入っていて,かつ単純な f=Fiber.new do |x| puts "A: #{x}" puts "B: #{Fiber.yield(1)}" 2 end puts "C: #{f.resume(3)}" puts "D: #{f.resume(4)}" #=> A: 3 C: 1 B: 4 D: 2 のようなものにしては如何でしょうか。 値のやりとりだけでなく,正確な実行順序も分かります。よく「Fiber.yield で親に戻すと,resume の次の行から再開される」とか「resume すると Fiber.yield の次の行から再開される」といった誤った記述を見かけますが,これは返り値を利用しないサンプルで理解しようとするからでは。 ---------------------------------------- http://redmine.ruby-lang.org -- ML: ruby-reference-manual@m... 使い方: http://QuickML.com/