Ruby の #choice にふさわしい名前


話題の #choice について。


同じ choice でも Python の場合、狙ったのかどうなのか random.choice(ary) という表現になるのでかっこいいのですが、Ruby の場合は ary.choice となってしまい、ランダムに〜というニュアンスがなんとなーく欠けている感じがしてどうにも座りが悪いように思います。

そんなわけで、Squeak Smalltalk ファンとしては、どーせ変えるなら #atRandom を模した #at_rand を推したいところ。

#(グー チョキ パー) atRandom
[:グー, :チョキ, :パー].at_rand


ところで、ふと疑問をもったので調べてみると、#atRandom というのはブルーブック(つまり XEROX Smalltalk-80)にはないようです。いかにも…な機能なのに不思議です。

Apple Smalltalk 0.3 にも見あたらないので、どうやら Apple Smalltalk 0.4 か Squeak Smalltalk になってから追加された機能みたいですね(Squeak1.1 にはすでにあります。あと、どなたか Apple Smalltalk 0.4 ください…汗)。


ちなみに、Squeak Smalltalk では Ruby の Kernel#rand にあたる機能を使いたいときも、配列からのランダムチョイスと同じ atRandom というメッセージを使って Integer>>#atRandom をコールします。

10.atRandom