From: matz@... (Yukihiro Matsumoto) Date: 2000-02-16T00:25:54+09:00 Subject: [ruby-talk:01386] Re: Say Hi Hi, In message "[ruby-talk:01384] Re: Say Hi" on 00/02/15, mengx@nielsenmedia.com writes: |My suggestion was to try to find a more comfortable method name (to me, and |maybe also to some people) for |"unshift", (while shift is from shell, unshift is Perlitical, to my knowledge). |Since "slice" methods are going to be added, the ambiguity could be less |for using pop(index=-1) and push(obj,index=-1) once documented, |(Or "insert(index , obj) may look better?) 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] But this behavior of `insert' is easily accomplished by []=, e.g. [1,2,3][0,0] = 5 #=> [5,1,2,3] [1,2,3][-1,0] = 5 #=> [1,2,5,3] `insert_after' is not as easy as `insert'. [1,2,3][0+1,0] = 5 #=> [1,5,2,3] a = [1,2,3] a[a.size,0] = 5 #=> [1,2,3,5] In addition, should inserting array be treated specially? E.g. [1,2,3].insert(0,[5,6]) #=> [[5,6],1,2,3] or [5,6,1,2,3] matz.