小波です。

中村さん,安達さん,どうもありがとうございます。
ようするに,次のテストプログラムを走らせるべきなのですね。動作については
了解しました。

a =["1","2","3","5","6"]
p a[1..3]
p a.slice(1..3)
p a.slice!(1..3)
p a

U.Nakamura wrote:
> slice!(start..last) の説明は、私も言葉足らずのような気がしま
> すが、 

>   指定した要素を返します。なければnilを返します。
>   指定した要素はselfから取り除かれます。

> とでもすれば誤解はなくなりますかね?

そうですね。これなら誤解しなかっただろうと思います。

ここで私の思い込みの原因を考えてみると,この場合には ! の意味が他のメ
ソッドと異なっている(少なくとも私にはそう思える)ことにあるようです。

a =["C","X","G"]
p a.sort!        # => ["C", "G", "X"]
p a               # => ["C", "G", "X"]
a =["C","X","G"]
p a.slice!(0..1)  # => ["C", "X"]
p a               # => ["G"] sort! の例からは ["C", "X"]が自然では?

もっとも,現状のような使い方が出来るほうが便利なのは確かで,そのことは
構わないのですが,マニュアルの記述はもう少しほしいところです。