Hi --

On Mon, 13 Feb 2006, Daniel Nugent wrote:

> On 2/12/06, Jeppe Jakobsen <jeppe88 / gmail.com> wrote:
>> Hi, I want to square every element in my array using a block:
>>
>> a = (1..1000).to_a
>> a.each {|x| x**2}
>>
>> But this does not seem to work, it just outputs my array completely
>> unchanged :(
>
> The problem you're seeing is that :each doesn't do anything with the
> return values of the block.
>
> What you want is :map or :collect (or their destructive forms :map! or
> :collect!).

But probably the methods, not the like-named symbols :-)


David

-- 
David A. Black (dblack / wobblini.net)
Ruby Power and Light (http://www.rubypowerandlight.com)

"Ruby for Rails" chapters now available
from Manning Early Access Program! http://www.manning.com/books/black