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 ()
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