ふなばです。

相談なんですが、値が必要になったときに勝手に計算してくれるようなオブジ
クトがほしいなと思っていて (フレームっぽい?)、何かうまいやりかたはない
ものかと考えているところです。再計算の必要がないということはよくあって、
そのような場合には簡単には、

  def Foo
    def foo
      def self.foo; @foo end
      @foo = ちょっとばかり高くつく計算
    end
  end

とでもしておけばよさそうですが  (もう少し工夫はできそう)、どうもコード
がわかり難くなってしまうようです (あちこちにあると鬱陶しい)。もうちょっ
とうまい方法ってないものでしょうか (より一般化して考えると、遅延評価と
かになりそうですが...)。また、そもそも Ruby においてこのような手法は有
効なんでしょうか。

--Tadayoshi Funaba