青山です。

元ネタとタイトルからすると、to_a, すなわち each の話しでもあるようなの
で、こんなのも

>> $/ = "&"
>> "a|b|c|&d|e|f&g|g|i".to_a
=> ["a|b|c|&", "d|e|f&", "g|g|i"]

>> $/ = "|"
>> "a|b|c|&d|e|f&g|g|i".to_a
=> ["a|", "b|", "c|", "&d|", "e|", "f&g|", "g|", "i"]

$/ 以外にも、String の each は区切りの指定が出来ますから、
string.each(rs){} と、$/ のようなトリックを使わずとも、わりと自由にア
クセスできます。

という事で、こういうような気持はあっても良さそうですよね。

(Time .. Time).each(Time::hour){}, (Time .. Time).each(Time::date){}
(Time .. Time).to_a(Time::hour), (Time .. Time).to_a(Time::date)

範囲に対して、何を基準にして取り出したいのか、という指定は出来て当然と
いう気もしますし。

succ すなわち次とは、ある分割基準があって成り立つ物であり、分割基準は
絶対とは限らない、という事にして、succ が分割基準を扱えるようにすると
いうのも手かもしれませんね。


-- 
青山 和光 Wakou Aoyama  <wakou / ruby-lang.org>