[#10209] Market for XML Web stuff — Matt Sergeant <matt@...>

I'm trying to get a handle on what the size of the market for AxKit would be

15 messages 2001/02/01

[#10238] RFC: RubyVM (long) — Robert Feldt <feldt@...>

Hi,

20 messages 2001/02/01
[#10364] Re: RFC: RubyVM (long) — Mathieu Bouchard <matju@...> 2001/02/05

[#10708] Suggestion for threading model — Stephen White <spwhite@...>

I've been playing around with multi-threading. I notice that there are

11 messages 2001/02/11

[#10853] Re: RubyChangeRequest #U002: new proper name for Hash#indexes, Array#indexes — "Mike Wilson" <wmwilson01@...>

10 messages 2001/02/14

[#11037] to_s and << — "Brent Rowland" <tarod@...>

list = [1, 2.3, 'four', false]

15 messages 2001/02/18

[#11094] Re: Summary: RCR #U002 - proper new name fo r indexes — Aleksi Niemel<aleksi.niemela@...>

> On Mon, 19 Feb 2001, Yukihiro Matsumoto wrote:

12 messages 2001/02/19

[#11131] Re: Summary: RCR #U002 - proper new name fo r indexes — "Conrad Schneiker" <schneik@...>

Robert Feldt wrote:

10 messages 2001/02/19

[#11251] Programming Ruby is now online — Dave Thomas <Dave@...>

36 messages 2001/02/21

[#11469] XML-RPC and KDE — schuerig@... (Michael Schuerig)

23 messages 2001/02/24
[#11490] Re: XML-RPC and KDE — schuerig@... (Michael Schuerig) 2001/02/24

Michael Neumann <neumann@s-direktnet.de> wrote:

[#11491] Negative Reviews for Ruby and Programming Ruby — Jim Freeze <jim@...> 2001/02/24

Hi all:

[#11633] RCR: shortcut for instance variable initialization — Dave Thomas <Dave@...>

13 messages 2001/02/26

[#11652] RE: RCR: shortcut for instance variable initialization — Michael Davis <mdavis@...>

I like it!

14 messages 2001/02/27

[#11700] Starting Once Again — Ron Jeffries <ronjeffries@...>

OK, I'm starting again with Ruby. I'm just assuming that I've

31 messages 2001/02/27
[#11712] RE: Starting Once Again — "Aaron Hinni" <aaron@...> 2001/02/27

> 2. So far I think running under TextPad will be better than running

[#11726] Re: Starting Once Again — Aleksi Niemel<zak@...> 2001/02/28

On Wed, 28 Feb 2001, Aaron Hinni wrote:

[ruby-talk:11603] Re: multidimenstional arrays?

From: jfn@... (Jeremy Nelson)
Date: 2001-02-26 18:10:03 UTC
List: ruby-talk #11603
In article <3A97F2C0.4030202@vt.edu>, Roy Patrick Tan  <rtan@vt.edu> wrote:
>Hi, I'm a bit new to Ruby, and I have a couple of questions:
>
>1. How do you instantiate multidimensional arrays?
>For single dimensions, I can do:
>a = Array.new
>a[100] = "foo"
>
>But if I wanted to do 2 dimensions, I currently create a one dimensional 
>array, and if I wanted to enter a new value, I have to check if the row 
>is empty:
>
>a = Array.new
>if a[200] = nil then
>     a[200] = Array.new
>end
>
>a[200][200] = "foo"
>
>Is there a simpler way?
>something like
>a = [][]
>a[300][300] = "goo"
>(which doesn't work...)

Here is the implementation I'm currently using for a 2d array.  This
is different from the last one i posted because this one takes a yield
block and can be used for ... interesting default assignments. =)

class Matrix < Array
        def initialize (rows, columns)
                super(rows)
                self.each_index { |i| 
                        self[i] = Array.new(columns) 
                        self[i].each_index { |j| self[i][j] = yield i, j}
                }
        end
end

Specifically, what I have done with the above is:

	a = Matrix.new(10, 10) { TkVariable.new() }

To get a 10x10 two-dimensional array of TkVariables (suitable for binding
into Tk Widgets, of course. =)


Or if you just want to have a two-dimensional array that is initialized with
a constant (as opposed to nil), 

	b = Matrix.new(rows, columns) { 0 }


The yield block takes two arguments; the row and the column of the current
position, so you could do something more fancy:

	c = Matrix.new(rows, columns) { |i, j| i * j }


Ruby is the most fun I have ever had as a programmar!
Jeremy

In This Thread