From: matz@... (Yukihiro Matsumoto) Date: 2003-03-26T01:19:45+09:00 Subject: [ruby-dev:19910] Re: Proc#call parameter assignment まつもと ゆきひろです In message "[ruby-dev:19905] Re: Proc#call parameter assignment" on 03/03/25, nobu.nakada@nifty.ne.jp writes: |(Cで実装された)メソッドを直接あるいはMethod化して呼ぶのと、さら |にProcにして呼ぶのとで動作が違います。 あらら。 |# なんとなくavalue <-> svalueのルールが複雑すぎるような気もした |# り。 同意しますが、より単純で適切なルールがないような。 |@@ -7299,8 +7304,5 @@ bmcall(args, method) | VALUE args, method; | { |- volatile VALUE a; |- |- a = svalue_to_avalue(args); |- return method_call(RARRAY(a)->len, RARRAY(a)->ptr, method); |+ return method_call(1, &args, method); | } これでちゃんと動くみたいですね。 あ、だめだ。 ruby -e 'method(:p).call(1,2)' ruby -e 'method(:p).to_proc.call(1,2)' で動きが違う。