# Array Building idiom

**URL:** <https://www.ruby-forum.com/t/array-building-idiom/102333>\
**Category:** Ruby\
**Created:** [August 15, 2006, 2:14pm UTC](https://www.ruby-forum.com/t/array-building-idiom/102333 "2006-08-15T14:14:59Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![John-Mason\_PSShack](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/94ad74/32.png) [@John-Mason\_PSShack](https://www.ruby-forum.com/u/John-Mason_PSShack)\
**Post date:** [August 15, 2006, 2:14pm UTC](https://www.ruby-forum.com/t/array-building-idiom/102333/1 "2006-08-15T14:14:59Z")

</div>

What other idioms do you use for:

a=[]; 10.times{a\<\<callme() }  
Array.new(10).map{ callme() }

Note: callme() returns a new value with each call.

## Do I understand correctly that the former will be illegal under 1.9.1?

John-Mason Shackelford

Software Developer  
Pearson Educational Measurement

2510 North Dodge St.  
Iowa City, IA 52245  
ph. 319-354-9200x6214  
removed\_email\_address@domain.invalid  
[http://pearsonedmeasurement.com](http://pearsonedmeasurement.com)

---

<div class="post-metadata">

**Author:** ![John-Mason\_PSShack](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/94ad74/32.png) [@John-Mason\_PSShack](https://www.ruby-forum.com/u/John-Mason_PSShack)\
**Post date:** [August 15, 2006, 2:15pm UTC](https://www.ruby-forum.com/t/array-building-idiom/102333/2 "2006-08-15T14:15:11Z")

</div>

On 8/11/06, John-Mason P. Shackelford [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> What other idioms do you use for:
> 
> a=[]; 10.times{a\<\<callme() }  
> Array.new(10).map{ callme() }
> 
> Note: callme() returns a new value with each call.
> 
> Do I understand correctly that the former will be illegal under 1.9.1?

Illegal on what basis? Also, Array.new takes a block while  
constructing the array, so you needn’t use map:

irb\> Array.new(10, rand(100))  
=\> [1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

irb\> Array.new(10) { rand(100) }  
=\> [74, 59, 97, 59, 65, 12, 64, 16, 2, 59]

martin
