稲葉です. ruby-list:12065 From: WATANABE Hirofumi <eban / os.rim.or.jp> Date: Sat, 13 Feb 1999 23:34:04 +0900 > YANAGAWA Kazuhisa <kjana / os.xaxon.ne.jp> writes: > > :> 十分スマートかどうかわかりませんが, arr[1, arr.size-1] はどうでしょう? > : > :OK です.そうか,それでよかったんだ.... なんでもやってみないとだめです > :ね.特にこういうすぐに試せるものでは. > arr = [1] のときに arr[1..-1] はエラーで arr[1, arr.size-1] > はいいってのはやっぱまずい気がしますね. 自分はこっちはそんなにまずくないと思うのですが. arr == [1] の時でも arr[1, 0]はarrの第0要素の次から0個の要素を取りだしたものと解釈すれば問 題ないと思います. arr[2, 0] や arr[1, 1] がどうであるべきかは自分も まよいますが. 自分の好みで「ちょっと変」と思うのは, > :「cdr(arr) を意図しています」ということで [] に対して適用したら [] が > :返ってきて欲しいわけです.ますます OK です. arr[start..end]でstart > endの時に例外を出すようになったのなら, arr[0,-1]が例外になってもいいと思います. というかそうなったと思って rubyが例外を出すのを予期したら, そうなってなかった, という事なんですが. > 逆に car と cdr を Array に追加するとか :-) Schemeだと(car '())や(cdr '())はエラーになりますよね. MLの検索をしてみたら, まつもとさんが Subject: [ruby-list:10507] Re: negative index of an array From: matz / netlab.co.jp (Yukihiro Matsumoto) Date: Fri, 30 Oct 1998 17:37:32 +0900 にて「arr[4, -2] = ['a', 'b']」のような代入の際に, 「負の長さはいつも 例外にするようにしましょう」と書かれています. 今の話題は参照ですけど. # 柳川さんにとっては好ましくない方向への提案ですね. すみません. -- 稲葉 浩人 <inaba / sdd.tokyo-sc.toshiba.co.jp/inaba / st.rim.or.jp>