まつもと ゆきひろです

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}ですから、
閉区間を表現する範囲オブジェクトは(現状では)ないということに
なりますね。