まつもと ゆきひろです

In message "[ruby-dev:8827] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num)"
    on 00/01/05, Minero Aoki <aamine / dp.u-netsurf.ne.jp> writes:

|> この場合、delete_atはどうします?
|
|西さんへの返事を書いている最中で、やっぱり delete_at( i, len ) も
|欲しいと思いました。

ま、気持ちは分かります。

|それで提案なんですが、delete_at( i, len ) を self かなにかを返すように
|実装して、slice! を返り値も返す版にしたらどうでしょうか?
|delete_at(i) は現在の仕様のままで、ドキュメントからは返り値の記述を外す。
|で、slice!(i) を許すようにして破壊的取り出しはこっちに揃えればばっちり。

えーと、整理すると、あおき案は

  delete_at(n)
    returns deleted item/returns self(?)

  delete_at(n,len)
    returns self

  delete_at(n..m)
    returns self

で

  slice(n)
    returns self[n]
  slice(n,len)
    returns self[n,len]
  slice(n..m)
    returns self[n..m]

なんですか? delete_at(n)が良く分からなかった。
私は

  def delete_at(*args)
    a = self[*args]
    self[*args] = []
    a
  end
  alias slice! delete_at
  alias slice []


ってのを考えてたんですが。

                                まつもと ゆきひろ /:|)