Brian Schröäer schrieb: > Though I never had use for this, here is my attempt on an > autovivifying array of arrays: > > class Autoarray < Array > def initialize(size=0, default=nil, update = nil, update_index = nil) > super(size, default) > @update, @update_index = update, update_index > end > > def [](k) > if k.abs() < self.length > super(k) > else > Autoarray.new(0, nil, self, k) > end > end > > def []=(k, v) > @update[@update_index] = self if @update and @update_index > super > end > end > > a = Autoarray.new > a[1][2][3] = 12 > a #=> [nil, [nil, nil, [nil, nil, nil, 12]]] > a[2][3][4] #=> [] > a #=> [nil, [nil, nil, [nil, nil, nil, 12]]] Very nice. There are problems with negative indexes (try a[1][-2][2]) but I'm sure they can be fixed. I really like the idea. Regards, Pit