2009-03-01から1ヶ月間の記事一覧

C で定義されたメソッドと Ruby で定義されたメソッドで Continuation オブジェクトへの変数の保存のされ方が違う

callcc で遊んでいてローカル変数の保存のされ方ってどうなっているんだ?とふと思って試してみました。 試していたら、 C で実装されたメソッドと、Ruby で実装されたメソッドで変数の保存のされ方が違うことに気づきました。 cont = nil 10.times do |i| p…

Generator の再発明

思考実験: returnを関数と思ってみる話 - d.y.d.をきっかけにちょっぴり継続がわかりました。 そこで、Generatorを再発明してみました。 class MyGenerator class StopIteration < IndexError; end def initialize(obj, method_name=:each) @obj = obj @meth…