From: Tyler Prete Date: 2007-02-01T06:59:27+09:00 Subject: Re: Transpose ------=_Part_8875_17464022.1170280760687 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Robert, It's actually a built in method on array. a.transpose will get you the same result. Nice solution, however. --Tyler On 1/31/07, Robert Klemme wrote: > > > This occurred to me while lying sick in bed... > > robert@fussel /cygdrive/c/Temp > $ ruby dd.rb > [["foo", "bar", "baz", "biz"], [1, 2, 3, 4], [100, 200, 300, 400]] > [["foo", 1, 100], ["bar", 2, 200], ["baz", 3, 300], ["biz", 4, 400]] > > robert@fussel /cygdrive/c/Temp > $ cat dd.rb > > require 'enumerator' > require 'pp' > > def transpose(a) > a.inject {|aa,b| aa.to_enum(:zip, b)}.inject([]){|aa,b| aa << b.flatten > } > end > > a = [ > %w{foo bar baz biz}, > [1,2,3,4], > [100,200,300,400], > ] > > pp a, transpose(a) > > > Did we have this before? > > Whatever... > > robert > > ------=_Part_8875_17464022.1170280760687--