Yukihiro Matsumoto wrote:
> 
> Hi,
> 
> In message "[ruby-talk:01384] Re: Say Hi"
>     on 00/02/15, mengx / nielsenmedia.com <mengx / nielsenmedia.com> writes:
> ...
> I think `insert' may be a good choice.
> What do you guys think about adding this method to Array?
> And possibly `insert_after' to make emulating `push' easier.
> 
>   [1,2,3].insert(0,5)         #=> [5,1,2,3]
>   [1,2,3].insert(-1,5)        #=> [1,2,5,3]
>   [1,2,3].insert_after(0,5)   #=> [1,5,2,3]
>   [1,2,3].insert_after(-1,5)  #=> [1,2,3,5]
> 

This doesn't seem intuitive to me.
I think the index should refer to slots, and not member objects.

The item method requires the insert before/after distinction,
but a slot method wouldn't. Simpler.

Slot method:

 0 1 2 3
[ 1,2,3 ]

or

-4 -3 -2 -1
[ 1, 2, 3  ]

So you could do:

[1,2,3].insert(0,5)		#=> [5,1,2,3]
[1,2,3].insert(1,5)		#=> [1,5,2,3]
[1,2,3].insert(-1,5)		#=> [1,2,3,5]
[1,2,3].insert(-2,5)		#=> [1,2,5,3]


What do you think?

Guy N. Hurst