From: Dave Thomas Date: 2000-02-15T11:08:28-06:00 Subject: [ruby-talk:01390] Re: Say Hi matz@netlab.co.jp (Yukihiro Matsumoto) writes: > 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? I'm not sure I see the point of adding a new library function that is the same as an existing capability. If you look at the Ruby standard library, we already have a whole load of duplication (take the file tests for example), which can make it quite intimidating for the newcomer. Our current summary of the base library runs to over 150 pages! So, my vote would be to add things only if: a. They make things significantly easier or more idiomatic b. They add genuine new functionality. One of Ruby's strengths is its simplicity. > 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] If you flatten it automatically, then there's no way to add a subarray. If instead you add it as an array, then the developer can always code insert(0, *[5,6]) to get it flattened. So, I'd vote for the first behavior. Regards Dave