ふなばです。

>Eiffelのonce functionはクラス型の定数を実現するために導入された
>もののようですから、
...
>とするのがRuby流なのではないでしょうか。

Eiffel の once についていえば、そういえるのかもしれません。 しかしなが
ら、 Eiffel でも、高々一度しか評価されることはない、ということではある
けど、いつも評価されるということでもないのではと (よく知らないケド)。

>もちろん、他の使い道もあるのでしょうが、Rubyの場合、文法で
>once functionをサポートするほどのことはないように思います。
># なぜなら、EiffelよりRubyの方が自由度が高いから:-)

ええ、以前に ruby-list で質問したときの、まつもとさんの様子からもそう
いう雰囲気は感じられたので、提案もしなかったんですが、何故かまた once
に戻ってきてしまった :-)

で、僕はユーザレヴェルでもそれなりにできるけど、あってもいいと、やっぱ
り思っています。けど、絶対に必要だとも思っていません。

ちなみに、 僕は、Ruby がやるにしても、必ずしもそのための文法をとくに誂
えなくてもよさそうなものだ、と思っているんですが、どうなんでしょうか。
メソッド定義はそれとして、ふるまいについて指示する、というようなことっ
てできそうじゃないですか (だって自由度が高いんですもの :-)。対象となる
メソッドを間接呼び出して、値を得たら再びメソッドを定義しなおすメソッド
を Module に用意するってのはダメなのかなあ。

--Tadayoshi Funaba