From: ujihisa@... Date: 2007-05-13T03:45:36+09:00 Subject: [ruby-dev:30782] Array#choiceの破壊的ver.の名前 氏久です。 5月2日に、trunkにArray#choiceが加わりました。 これはArrayのat(rand(self.size))と同じものです。 これに対して、破壊的にランダムに値を取り出す Array#choice!を作ってみました。 ( 作ったのはRuby関西のokkezさんです ) これはArrayのdelete_at(rand(self.size))と同じものです。 問題となるのは名前で、 Array#choiceに対してatが使われるなら Array#choice!に対してはat!を期待してしまうのに対し 実際にはdelete_atです。 他の名前を取り出すならば、やることが 「randomly taken from array」なので Array#takeというのも考えられますが、 takeだとHaskellのtakeのように全く意味の違うものと 混同してしまいそうです。 # takeはHaskellなどで先頭からn個の要素を取り出すメソッドです。 他に考えられるのはpickupなどがありますが、 どのような名前が最も自然に感じるでしょうか?