From: Tanaka Akira Date: 2007-12-15T06:56:15+09:00 Subject: [ruby-dev:32605] Re: /(?...)/ =~ str assigns foo In article , Yukihiro Matsumoto writes: > いや、それはもちろん承知してます。ので、提案されたことそのも > のに驚きはないです。タイミング的にはちょっとびっくりしました > けど。 まぁ、直前なのは確かですね。 > まあ、そうなんですけど、それらと比較しても正規表現リテラルの > named captureは、なんというのか「代入してる感」が少なくない > ですか。 中身を調べたら値がバインドされるのは普通ではないでしょうか。 $1 とかもそうですし、他の言語で Haskell 等のパターンマッチも そうですが。 > |また、リリースされてしまうと互換性の問題が出るので、ぜひ現時 > |点で入れたいと思っています。 > > 気持ちは分かります。 このタイミングを逃すと何年も入れられないことになりそうなのが 嫌です。それとも、1.9.1 直後に入れてもいいですか? > * 上で述べた代入感のなさ > * named captureすべてではなくリテラルのみ (いや、そうじゃ > ないと、とても使えないんだけど) という特殊性 > > が気になるんですよね。暗黙の挙動は結構嫌われるということもあ > りますし。 むしろ $~ への暗黙の代入に比べて明示的になります。その意味で は、$~ への代入に比べて変数名がちゃんと書いてあるぶん、代入 感は増加しているのではないでしょうか。 リテラルのみなのは、ローカル変数が lexical scope であるとい う性質上そのようにしかデザインできません。変数名と =~ の = という文字の組み合わせで代入と考えるというのはどうでしょう? -- [田中 哲][たなか あきら][Tanaka Akira]