From: Yukihiro Matsumoto Date: 2009-11-04T00:35:40+09:00 Subject: [ruby-dev:39630] Re: [Bug #2323] "Z".."Z".succが空 まつもと ゆきひろです In message "Re: [ruby-dev:39622] Re: [Bug #2323] "Z".."Z".succが空" on Tue, 3 Nov 2009 22:22:58 +0900, Hiro Asari writes: |個人的には"Z".succが"AA"であるならば、二つ以上の要素を持つ"Z"から始まるRangeは"AA"を含むべきだと考えます。 |Rangeを半順序集合に定義するのも可能とは思いますが、特別な動きをする事があるのならば、 |それは明確に書かれていないと混乱を招くと思います。 文字列のRangeについては、 * 文字列の順序の定義が複数ある(辞書順とsuccによるもの) * Rangeはsuccを使うが、これは半順序集合でいろいろ面倒 という事情があります。で、現在、ちょっと中途半端な状態になっ てます。最終的な仕様を検討する時間(とやる気)が取れなくて。 現状 * 両端ともすべてASCII数字である場合には、数的な順序 * 両端ともASCII1文字である場合には、ASCII文字コード的な順序 になってます。で、このいずれにもあてはまらないケースの仕様は 正直確定してません。苦労してもあんまり使われなさそうだし。 ただ、 * 両端が共通の先頭部分を持ち、非共通部分がすべてASCII数字で ある場合には数的な順序 というのは採用しようと思ってます。あとは、ある文字列から別の 文字列にsuccの連鎖で到達できるかどうか簡易に判定できるのであ れば、それに従って順序を処理すると良いと思うのですけど、でき るんだっけか。 まつもと ゆきひろ /:|)