From: dblack@... Date: 2006-03-07T07:28:57+09:00 Subject: Re: What is the best way to iterate through two containers of the same length? Hi -- On Tue, 7 Mar 2006, William James wrote: > Mark Watson wrote: >> If I have two containers c1 and c2 of the same length, what is the >> proper "Ruby way" to do this: >> >> c1.length.times {|i| >> # access c1[i], c2[i] >> } >> >> I like that Ruby container classes provide their own iterators, but >> what I would like to have is something like: >> >> (c1,c2).each {|x1,x2| .... } >> >> I thought of writing my own iterator class so that I could do something >> like: >> >> Iterator.new(c1,c2).each {|x1,x2| .... } >> >> but that looks clumsy and inefficient. >> >> I am transitioning to using mostly Ruby (moving away from Java, Lisp, >> and Smalltalk) and I would like to use the proper Ruby idioms. > > foo = %w(x y z) ; bar = [2,4,6] > [foo, bar].transpose.each{|a,b| print a, b, $/ } > ---> > x2 > y4 > z6 I don't think $/ is very idiomatic. See the ToDo file in the source; it includes: * discourage use of symbol variables (e.g. $/, etc.) in manual :-) David -- David A. Black (dblack@wobblini.net) Ruby Power and Light, LLC (http://www.rubypowerandlight.com) "Ruby for Rails" chapters now available from Manning Early Access Program! http://www.manning.com/books/black