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