From: matz@... (Yukihiro Matsumoto) Date: 1999-05-27T17:57:56+09:00 Subject: [ruby-dev:7005] Re: ruby lacks some features of tr in Perl まつもと ゆきひろです In message "[ruby-dev:6992] ruby lacks some features of tr in Perl" on 99/05/25, Inaba Hiroto writes: |tr///dはString#delete、tr///sはString#tr_sとメソッドを用意しているのだ |から、String#countというある範囲の文字の数を数えるメソッドがあってもい |いと思いますが、どうでしょうか? 良さそうに思います.わたなべさんからは histgram は? という 意見も出てるようですが,どのような仕様のメソッドが良いでしょ うねえ. # 1.3はfreezeしてるので1.4以降ですね. |ついでに、Perlのtrでは直接できるのにrubyでは工夫しないとできないことを |2つあげます。 | |1.rubyのString#trは\0への置換ができません。Perlのtrはできます。 | % ruby -e 'p "a0b1c2".tr("0-2", "\0-\2")' | "a0b\001c\002" これはバグです.早速修正します. |2.rubyのString#deleteはPerlのtr///dでできる「ある範囲に含まれある |範囲に含まれない」文字の削除ができません。 | % perl -le '$_ = "123456789"; tr/2-8/4-6/d; print' | 14569 deleteがoptionalな2番目の引数を持てば良いようですね.そうし ようかな. まつもと ゆきひろ /:|}