matz / netlab.co.jp (Yukihiro Matsumoto) writes:

> Hi,
> 
> In message "[ruby-talk:01384] Re: Say Hi"
>     on 00/02/15, mengx / nielsenmedia.com <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