In article <E1JrZNo-000202-Nl / x61.netlab.jp>,
  Yukihiro Matsumoto <matz / ruby-lang.org> writes:

> 1.8ではMatchData#selectは、ブロックが与えられたらEnumerable系、
> 引数が与えられたらvalues_atという動きをしていました。

そういう動きをしていたのは 1.8.0 だけです。

> が、混じ
> るのは良くないだろうと思った覚えはあります。

その思いは 1.8.1 で実現され、それ以降は引数が与えられるとエ
ラーになっています。

> 1.8の範囲内で重大な非互換性を発生させるのは本意ではないので、
> いまさらですが1.8.7のMatchData#selectは1.8.6と同じように
> Enumerable系の動作に戻す(RDocもそれにあわせて書き換える)べき
> でしょう。

そう思います。

> で、1.9でどうするかですが、MatchDataに対してEnumerable系の
> select(だけ)が必要になる局面はほとんどないと思いますし、とは
> いえselectというメソッドを見ると誰もがEnumerable系の動作を期
> 待しますから、いっそ削除してしまうのがよいのではないかと思い
> ます。
>
> どうでしょう?

[ruby-dev:15419] を見つけて読みましたが、欲しかったのは結局
select じゃなくて values_at だった、っていうことなんですかね。

削除するというのは、MatchData#select の最初の意図に沿ってい
るとはいえるんじゃないでしょうか。
-- 
[田中 哲][たなか あきら][Tanaka Akira]