先日来、ruby-talkでRangeについていろいろと議論されていたことを解消できるめどが立った。
しかし、その完全解決にはひとつ、もしくはふたつメソッドを追加する必要があるのだが、 良い名前が思いつかないのだ。困った。
ひとつめは大小比較で包含関係を判定するRangeクラスのメソッド。 1.8でいうとinclude?に相当するのだが、1.9ではこれは基本的に、 要素として含むかどうかという離散的な包含関係を意味することにした。 ただし、include?とmember?は数だけは例外として大小関係で判定する。
名前の候補としては「encompass?」と「span?」があがっているが、 いまいちピンとこない。便利なメソッドなのでできるだけ短い名前にしたいのだが、
beg <= x <= end
という関係が明確に分かるとありがたい。
もうひとつは、succで作られる列に含まれるかどうかを判定するメソッド。 つまり、このメソッドの名前を仮にfooとしたとすると、
x.foo(beg,end)
は begからendまでsuccを使って順に値を生成した場合、その列にxを含むとき、真を返すというもの。 xを含まない、あるいはsuccを使ってbegからendにたどりつけない場合には偽を返す。
これがあるとinclude?などの包含関係の判定でループを回さなくてもすむので効率が向上する。 効率だけの問題なので、なくてもいいし、直接呼ばれることもないので短い名前である必要もない。 「between?」に近いのだがComparable#between?が大小関係で比較すると決まっているので、 離散的なこちらには別の名前をつけたい。
なにかいい名前はないものか。
娘の視力がまた下がったので、眼科へ。
待ち時間に娘は読書、私はPCを開けていろいろと。 しかし、ふと気がつくとキューに入れただけのはずのメールが配送されている。 知らない間に無線LAN接続していたらしい。FREESPOTか?
ま、ネットが使えるのはありがたいことではあるが。