新井です。

# やっと ruby-listを再読し始めました。
# すでに解決した話でしたら無視してください

>>> From: kjana / os.xaxon.ne.jp (YANAGAWA Kazuhisa)
>>> Date: 11 Feb 1999 22:58:22 +0900
>>> Subject: [ruby-list:12018] Re: document|implemnt bu on Array#[x..y] 

> いえ,`cdr(arr)' っていうイメージです.
> 
>     [1][1..-1] は [] を返さずに例外になるから困ったな,
> 
> っと.前のメールに書いたように
> 
>     tmp = arr.dup; tmp.shift; tmp 
> 
> でいいわけですが,もっとスマートなやり方は無いでしょうか,という話です.

class Array
    def cdrsafe
	begin
	    self[1..-1]
	rescue IndexError
	    []
	end
    end
end

p [1,2,3].cdrsafe
p [1].cdrsafe

=> [2, 3]
   []
では、ダメかな?

もっと、汎用的に書けるかも知れませんが名前が思い付
かない。