Generic-user-small kdream95 1 post

def memoize(parent, method)

  Class.new(parent) do
    memory = {}

    define_method(method) do |*args|
      if memory.has_key?(args)
        memory[args]
      else
        memory[args] = super
      end
    end
  end                                       
end


	

Where is variable ‘memory’ stored?

 
Dave_8_trans_small Dave Thomas Administrator 70 posts

It’s a local variable, just like any other. In this case, it is scoped to the block passed to Class.new.

Dave

2 posts, 2 voices