[x86_64-darwin10.0.0]"Z".."AA"[]"Z".succではなくてもうちょっと”離れた”ヤツをRangeの終わりとして指定すると"AA"はしっかりと入っています。"Z".succ'trueでも半端な”離れ”方ではいけません。"Z".succ'falseto_aを介しても同様です。ago=begin浅里です。nobu@ruby-lang.org:なかだです。[x86_64-darwin10.0.0]"Z".."AA"[]こんなところでしょうか。このパッチで件の問題は解決されていますが、ちょっと別なところで問題になるかもしれません。このパッチを当ててみたところ、"Z".."a"は空です。1.8では["Z"]が返ってきます。これに対応したリビジョン(r24573)では加えて:Z..:aが認められていて、それにはアスキー配列に則ったシンボルが含まれています。個人的には"Z".succが"AA"であるならば、二つ以上の要素を持つ"Z"から始まるRangeは"AA"を含むべきだと考えます。Rangeを半順序集合に定義するのも可能とは思いますが、特別な動きをする事があるのならば、それは明確に書かれていないと混乱を招くと思います。参考までに指摘しておきます。writes:|個人的には"Z".succが"AA"であるならば、二つ以上の要素を持つ"Z"から始まるRangeは"AA"を含むべきだと考えます。|Rangeを半順序集合に定義するのも可能とは思いますが、特別な動きをする事があるのならば、|それは明確に書かれていないと混乱を招くと思います。文字列の順序の定義が複数ある(辞書順とsuccによるもの)Rangeはsuccを使うが、これは半順序集合でいろいろ面倒という事情があります。現在、ちょっと中途半端な状態になってます。最終的な仕様を検討する時間(とやる気)が取れなくて。両端ともASCII1文字である場合には、ASCII文字コード的な順序になってます。このいずれにもあてはまらないケースの仕様は正直確定してません。苦労してもあんまり使われなさそうだし。ある場合には数的な順序というのは採用しようと思ってます。あとは、ある文字列から別の文字列にsuccの連鎖で到達できるかどうか簡易に判定できるのであれば、それに従って順序を処理すると良いと思うのですけど、できるんだっけか。ago=begin成瀬です。writes:|個人的には"Z".succが"AA"であるならば、二つ以上の要素を持つ"Z"から始まるRangeは"AA"を含むべきだと考えます。|Rangeを半順序集合に定義するのも可能とは思いますが、特別な動きをする事があるのならば、|それは明確に書かれていないと混乱を招くと思います。文字列の順序の定義が複数ある(辞書順とsuccによるもの)Rangeはsuccを使うが、これは半順序集合でいろいろ面倒という事情があります。現在、ちょっと中途半端な状態になってます。最終的な仕様を検討する時間(とやる気)が取れなくて。両端ともASCII1文字である場合には、ASCII文字コード的な順序になってます。このいずれにもあてはまらないケースの仕様は正直確定してません。苦労してもあんまり使われなさそうだし。