まつもと ゆきひろです In message "[ruby-list:19897] Re: 半開区間指定" on 99/12/27, Itou-T15 / mail.dnp.co.jp <Itou-T15 / mail.dnp.co.jp> writes: |添字範囲の指定で「n..m」と「n...m」は同等か、ということです。 |m が含まれるかの違いをのぞいて。 あ、そういうことなんですか。同等です。同じ範囲オブジェクトで すし。 |Rubyの本第1版の付録Aでもメソッド一覧には「..」しか入っていないですし。 |無視されてるのは特別扱いがあるのか確認したかっただけです。 |よろしくお願いします。 str[n..m],str[n...m]という構文があるわけではないので、..の方 で代表扱いしてるんです。これは「str オブジェクトの [] メソッ ドを ..(または...)で生成される範囲オブジェクトを引数にして呼 び出す」という意味です。 ですから、ちょっと見慣れませんが、 range = 2..6 str[range] なんてことも有効です。 |実数でなくとも整数でも使える用語のつもりです。 |開区間とは{x|p<x<q}という集合で、 |閉区間とは{x|p≦x≦q}という集合です。 |つまり、両端を含むか、含まないかという違いがあります。 |もちろん、開区間は両端の点を含まず、閉区間は両端の点を含みます。 ..は{x|p≦x≦q}ですが、 ...は{x|p≦x<q}ですから、 閉区間を表現する範囲オブジェクトは(現状では)ないということに なりますね。