From: dblack@... Date: 2006-03-14T08:33:59+09:00 Subject: Re: array element access Hi -- On Tue, 14 Mar 2006, Mike Austin wrote: > Tomas Fischer wrote: >> Hi, >> >> I've got an array a= [1,2,3,4,5,6] and want to access each second element: >> b=[2,4,6]. How is this done in ruby? >> >> I know, that I can use a for-loob and modulo operator, but I think there is >> a "ruby way" of doing this. >> >> Thanks. >> tomas > > I've always been intrigued by creating a generalized enumeration system. > Have you guys seen this: http://www.rubyweeklynews.org/20050710 : accessing > index inside map. For example: > > (1..10).collect.with_index { |v, i| v * i } > > I think that is sweet! I wonder if it can be generalized enough to do this: > > file.collect.each_byte.with_index { |b, i| b + 1 } I'm not sure why, but to my eye this has always looked somewhat obscure. I guess it's something about having to read to the right, even to the extent of not seeing a block, before I know what's being returned (array vs. enumerator). It's almost as if the call to collect wasn't a "real" call to collect, but rather a kind of place-holder for a collect operation. I'm not sure. 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