質問

って理解しようとどのようにRubyのブロック作品となって実施している.

一つ簡単な方法で実施閉鎖に継承する void* を囲むスタックの閉鎖機能がRubyブロックも取り扱を返しますと破諸表の範囲から利用できます。

loop do
  break i if (i >= 4000)
  i *= 2
end

と思うの閉鎖を提案Javaのように働きます。

なので、あなたは何点ぐらいになると思を実装するルビー-ブロック/Java-閉鎖に。

役に立ちましたか?

解決

の閉鎖を要求する概念のコンテキストを共有します。CのコンテキストのスタックのレジスタのCPUで作成ブロック/閉鎖、必要なものを操ることができるスタックポインタを正確か(再入可能な)方法、復元を登録しています。

にすることで行い通訳者または仮想マシンがついて context 構造は似たような、使用しないで、スタックを登録す。この構造を把スタックオプションとしても登録であれば、設計の登録に基づくェースを使用してアクセスします少なくとも、最も単純な文について教えてくださいが弱performantより実際のマッピングも正しく).

他のヒント

まだ実際に履行されず、このぐらいまでは、袋の塩です。

ある部品を休業:の環境とデータをコードす。ようにとできるのではないでしょうか過void*取扱いへの参照データです。ではありません使用setjmpとlongjmp実施のための非線形制御の流れをジャンプするRubyの休憩があります。

したい場合は閉鎖すべきだろうプログラミング言語で実際に支援します。:-)

更新:興味深いことは起きていることをClang.彼らは試作、閉鎖C. http://lists.cs.uiuc.edu/pipermail/cfe-dev/2008-August/002670.html が証明されています。

が良いセットのスライドブロックをRuby"の一環としてレールと情熱"コース:

Ruby_Blocks.pdf

このカバーを表すブロックでは、どのように取得し渡された引数を実行してもらうProcオブジェクト。で非常に明確に説明しています。

でもそれを見てどのようにJRubyっ取り扱うことその解析をJava.のソースで codehaus.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top