まつもと ゆきひろです

In message "[ruby-dev:8811] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num)"
    on 00/01/04, Akinori MUSHA aka knu <knu / idaemons.org> writes:

| そもそも delete という語は削除、消去、抹消(erase)を意味するので、
|戻り値を期待するのは変な感じがします。それに対し remove というのは
|re-move であるところからも伺えるようにどこかへ持ち去るという意味
|ですから、それを返り値という形で引き取るというのもあながち無理は
|ないかなと思った次第です。

それは分かります。

問題は現状既にdeleteってメソッドがあるのにもかかわらずremove
という少々別の挙動をするメソッドを導入すると混乱するように思
われることです。

| しかし、もっといいのを思いつきました。slice と slice! を用意すると
|いうのはいかがでしょうか。ary.slice(n..m) と ary.slice(n, len) は
|それぞれ ary[n..m] と ary[n, len] を返し、slice! は同時に該当部分を
|削除。
|
| 破壊的メソッドというのがはっきりしますよね。いかがでしょう?

sliceは良いかも。ちょっと考えさせてくださいませ。
他の方の意見も歓迎します。

この場合、delete_atはどうします?