咳といいます。 > |その場合、Hash#eachの内部でしているであろう yield([:key, :value]) は > |どうなるんでしたっけ? > | > |{ 'key'=>'value' }.each do |k, v| > | assert_equal(['key', 'value'], k) > | assert_equal(nil, v) > |end > | > |ですか? > | > |それとも次のようになりますか? > | > |{ 'key'=>'value' }.each do |k, v| > | assert_equal('key', k) > | assert_equal('value', v) > |end > > 後者です。ここが変わると大混乱になります。 > 遠い将来は前者のようになるかもしれませんが。 あれれ? dRubyではHashの要素がDRbUndumpedでなくとも、eachが うまくいかないようです。 Hash#eachなどをProc#callで再現するには、どうしたらいいんでしたっけ? rb_hash_each()とeach_i()では、次のようなことをしてますよね。 assoc = Array.new(:key, :value) yield(assoc) rb_yield()とrb_yield_values()ってなにが違うかというと、 rb_yield_0()の引数avalueが違うのかな。avalueがなにか影響するのかしら。 もしかしてブロックのパラメータの書き方によって渡る値がかわる?? arityなどを使ってどうにかごまかすのかなあ。