Multi-dimensional arrays

Hi,

I have just started programming with Ruby and have run into the following
problem.

I'm trying to work with 3 dimensional arrays and have run into a problem
dimensioning the array.

a = [[[]]]
a[0][0] = [ 0,1,2,3]
a[0][1] = [ "zero", "one","two",three"]

The above assignments work without a problem, but the following assignment
fails.

a[1][0] = [ 4, 5, 6, 7]
NoMethodError: undefined method `[]=' for nil:NilClass

How do you dimension the number of elements in a multi-dimensional array when
the final number of elements in the array is not known.

···

--
Regards,

Graham Smith

Try http://raa.ruby-lang.org/project/narray/

- Jake McArthur

···

On Jul 7, 2006, at 12:09 PM, Graham Smith wrote:

How do you dimension the number of elements in a multi-dimensional array when
the final number of elements in the array is not known.

class Array
   def default(&proc)
      @default = proc
      self
   end

   alias_method :rb_array_indexing, :""
   def (index)
     if @default and index.kind_of? Integer and index >= length
        index.downto(length) do |i|
           self[i] = @default.call(i)
        end
     end
     rb_array_indexing(index)
   end
end

a =
a.default { }

a[1][0] = "Hello"
a #=> [, ["Hello"]]

···

On Jul 7, 2006, at 1:09 PM, Graham Smith wrote:

Hi,

I have just started programming with Ruby and have run into the following
problem.

I'm trying to work with 3 dimensional arrays and have run into a problem
dimensioning the array.

a = [[]]
a[0][0] = [ 0,1,2,3]
a[0][1] = [ "zero", "one","two",three"]

The above assignments work without a problem, but the following assignment
fails.

a[1][0] = [ 4, 5, 6, 7]
NoMethodError: undefined method `=' for nil:NilClass

How do you dimension the number of elements in a multi-dimensional array when
the final number of elements in the array is not known.

--
Regards,

Graham Smith