knuです。先達として Perl だけ見ていてもあれですので、別の刺激をば。

 Java の Collection API の List インターフェースには、

	List#remove(n)
	  n 番目の要素を削除し、その要素を返す。

	List#remove(obj)
	  obj に一致する要素を先頭から探し、見つかったらその要素を
	  削除して true を返す。なかった場合に false を返す。
	  
	List#removeRange(n, m)
	  n 番目の要素から m 番目の要素までを削除。何も返さない。

	List#subList(n, m)
	  リストの n 番目の要素から m 番目の要素の範囲のビューを返す。
	  このビューはリストとして扱え、変更を加えれば元のリストの
	  該当部分に反映され、元のリストの該当部分を変更するとこの
	  ビューにも反映される。

のようなメソッドが用意されています。remove および removeRange に
ついては合理的で特に何も言うことはありませんが、 subList の挙動は
たいへん興味深いものです。具体例を挙げると、 Perl の

	splice(list, offset, len, anotherlist);

は、 Java では次のように実現されます。

	sublist = list.subList(offset, offset + len - 1);
	sublist.clear();
	sublist.addAll(anotherlist);

 このマジックは、実際には SubList という List インターフェースを
インプリメントしたクラスによって実現されていますが、ここでは詳細は
割愛します。(もちろん、 Ruby でも実装することは可能です)

 同じことができればそれこそ自由自在ですが、ちょっと大げさかな?


 以上、脱線失礼しました。

-- 
                     /
                    /__  __
                   / )  )  ) )  /  http://www.idaemons.org/knu/
Akinori MUSHA aka / (_ /  ( (__(   mailto:knu / idaemons.org

"We are but hungry..  Associated Ita-meshi Daemons!"
                                   http://www.idaemons.org/