From: nobu.nakada@... Date: 2003-03-10T18:21:05+09:00 Subject: [ruby-dev:19787] Re: (1.8.0-preview2) Proc#call なかだです。 At Mon, 10 Mar 2003 17:16:50 +0900, Yukihiro Matsumoto wrote: > |Proc#yieldがうまくいってないような気がします。 > | > |$ ruby -v ' > | f1 = lambda {|r,| p r} > | a0 = [] > | f1.yield([], *a0) > |' > |ruby 1.8.0 (2003-03-08) [i686-linux] > |nil > | > |これも[]になるべきかと思うんですが。 > > 確かにうまくいってないんですが、添付のパッチの実装はなんか違 > うんじゃないかと。いや、中田さんに文句を言う以前にわたしが > pcallというフラグ引数の使い方をいいかげんにしすぎたという点 > に問題があるわけですが。 いや、ad hocだってのは確かです。 > 要するにpcallに、両辺の数があわないときにエラーにするという > 役割と、展開を行うかどうかという役割の両方があるのがいけない > のかな。 ということでしょう。両辺の一致を求める、展開を試す、あわなくて も構わない、という三段階にしようかとも思ったんですが。 ついでに、ブロックからのbreakの動作もcallとyieldで違うので、あ わせてよろしく。 $ ruby -e 'proc{break}.call' $ ruby -e 'proc{break}.yield' -e:1:in `yield': break from proc-closure (LocalJumpError) from -e:1 -- --- 僕の前にBugはない。 --- 僕の後ろにBugはできる。 中田 伸悦