From: "U.Nakamura" Date: 2009-05-19T15:58:46+09:00 Subject: [ruby-dev:38493] [Feature:trunk] enhancement of Array#drop こんにちは、なかむら(う)です。 Rubyでスクリプトを書いていて、配列から、ある条件に合致する先 頭の要素のみを削除する、という処理を書きたい場面に出会ったこ とが何度かあります。 無条件で先頭の要素を削除するメソッドとしてはshiftまたはdrop(1) があり、また、条件に合致した全ての要素を削除するメソッドとし てはdeleteがありますが、ある条件に合致する先頭の要素のみを削 除しようとすると、意外と複雑な記述になってしまいます。 ... という話をIRCでしてみたところ、なかださんに「dropにブロッ ク引数を追加するのはどうか」と言われました。 例: [:a, :b, :a, :b].drop(1){|e| e == :b} #=> [:a, :a, :b] [:a, :b, :a, :b].drop(2){|e| e == :b} #=> [:a, :a] さらに、第2引数が指定された場合は、{|e| e === 第2引数} とみな すようにすればさらに便利、とも言われました。 例: [:a, :b, :a, :b].drop(1, :b) #=> [:a, :a, :b] 私としてはこの仕様が実現されると大変便利と思うのですが、いか がでしょうか。 # なお、なかださんが例のごとく既にパッチを持っています。 それでは。 -- U.Nakamura