えぐち@エスアンドイー です。

>>> In message [ruby-dev:8777] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num)
    On Thu, 30 Dec 1999 20:56:24 +0900, matz / netlab.co.jp (Yukihiro Matsumoto) said:

matz> まつもと ゆきひろです
matz> 
matz> In message "[ruby-dev:8767] Re: [REQ] Array#each{|a,b,...|}, Array#shift/pop(num)"
matz>     on 99/12/30, Kazunori NISHI <kazunori / swlab.csce.kyushu-u.ac.jp> writes:

matz> |(*1) ruby の Array は特に強力なので(添字の書き方で色々できるので)、逆
matz> |に混乱する(読み書きにしくい)と感じる時がある。[n,m] だっけ?[n..m]だっ
matz> |け?みたいな。だから、array[-1] でもよいがなるべく array.last と書きた
matz> |い、array.splice(-1,3,nil) でもよいが、array.pop(3)と書きたい、と。
matz> 
matz> 語彙については「できないもの」に比べて優先度が下がる傾向があ
matz> ります。特に曖昧でない名前が必要です。pop(3), shift(3)がそう
matz> かというと少し躊躇があります。
matz> 
matz> いや、そんなに悪いとも思わないんですけどね。

keyword 引数が実現されたら、

  x = ary.delete(last: 3)    # 最後3つを削除、それを要素とする配列をかえす。
  ary.delete(at: 10)         # ary.delete_at(10) と同義

なんて事ができますか?

matz> Array#spliceは導入の方向で考えましょう。が、あのコードだとイ
matz> ンデックスと長さでしか指定できないけど、それで良い?
matz> 
matz> それとも
matz> 
matz>    ary.splice(0, 2, nil)
matz>    ary.splice(-3..-1, nil)
matz> 
matz> とか指定できた方が良いかなあ。

あと、削除した位置に nil を残さない方が希望の動作なのでは、
#毎回 compact! するのも面倒でしょ (^^)

	えぐち