From: matz@... (Yukihiro Matsumoto) Date: 2002-11-14T04:55:00+09:00 Subject: [ruby-dev:18775] Re: Enumerable#zip まつもと ゆきひろです In message "[ruby-dev:18774] Re: Enumerable#zip" on 02/11/14, Daisuke Aoki writes: |Yukihiro Matsumoto wrote: |> 個人的にnextってのは好きじゃないです。各オブジェクトに妙な状 |> 態を持たせることになるので。スレッドセーフじゃないし。 | |findfirst/next 的な next なんですけど(next できる別オブジェクト作って |それが状態を保持することになって、それで一つずつ each を行う |という感じ。そのオブジェクトは next しかできない)。ただ、next を |用意するということは each を単に書けばいいという現状と比べ |Enumerable を include するクラスを書くのに垣根が高くなる(手間が増える) |という点で、next を是非にと思っているわけでもありません。 |each だけで OK というのも Ruby で気に入っているところの一つなので(^^) それって要するに外部イテレータですね。それは避けたい。 |けど、そういう状態を持つオブジェクト自体、どこで複数の |スレッドにオブジェクトが共有されるか分からないという点で |だめなのか。そういうのが許される、あるスレッドからしかアクセスできなく、 |別のスレッドからアクセスすると例外が出てしまう言わばスレッドローカル |オブジェクト?というのがあれば問題ないのかな。それか、ソース上では |同じに見えてもスレッドごとに異なるスレッドローカルオブジェクト?の |存在とか。そういうオブジェクトを使うと混乱しそうで、やはりだめなのかな。 そんなことはないでしょう。状態を表現するオブジェクトが分離さ れていれば、あとはその状態をひとつのスレッドからしかアクセス しないのはユーザの責任でしょうから。 まつもと ゆきひろ /:|)