From: Tanaka Akira Date: 2003-07-14T13:16:44+09:00 Subject: [ruby-dev:20654] Re: [Oniguruma] explicit capture In article <5FD2F0CF7F5D7F44B00F36870B9E78B508DE5050@SBG-EX4>, kkosako@softbank.co.jp writes: >> 思いついたんですが、ひとつでも named capture が使われていた場合には、 >> これをデフォルトにするというのがいいかもしれません。 >> >> きっと番号と名前を両方使うのはわかりにくいでしょうし。 >> >> # そして、(かなり遠い)将来的には named capture を推奨して $1, ... を >> # obsolete するとか... > > どうするのが一番良いのか、本当はわからないのですが。 わたしのもかなり適当な予想(というか勘というか)であって、確実とはとても いえないわけではあるんですが。 > パターンによってデフォルトが変化するというのが、 > そうなる理由があるとはいっても、私には判りにくい感じがします。 それはあるかもしれません。 > そこまでやるのであれば、嵌る人を出さないようにするために、 > 両方同時に使うことを禁止してしまうほうがすっきりします。 > (将来ではなく、最初から) えぇと、 >> # そして、(かなり遠い)将来的には named capture を推奨して $1, ... を >> # obsolete するとか... の部分はもっと強烈な話で、$1, ... をいついかなるときでも(名前を使わな い時でも)禁止するという話です。まぁ、これを実際にやるには名前のほうを すごく使いやすくしないといけません。少なくとも $~["name"] なんてのは長 すぎてダメだと思います。直接ローカル変数に代入できたらいいんではなかろ うかと思っていたりもしますが、式展開の中に名前が入ってたらどうしようと かなかなか問題です。でも、もし、これが可能なら、最終的には「パターンに よってデフォルトが変化する」こともなくなるわけで、なかなか魅力的です。 それはそれとして、両方使うのを最初から禁止しておくというのは [ruby-dev:20633] で書いたところから C の部分を除くわけですが、これはい い方法だと思います。 > それが不評なら、両方同時に使うことは意外に多かった、 > ということになります。 不評であることが分かったら後から導入できるわけで、選択肢を残しておけま すし。 -- [田中 哲][たなか あきら][Tanaka Akira]