For Strings we can also use .prepend() to add to the beginning.
For Arrays, we have to use .unshift().
I have a hard time remembering .unshift though, .prepend() seems
to be easier for me to remember.
I'd like to use both .prepend for Strings and Arrays; right now
I have to use different names. I could alias prepend to unshift
for class Array, but then I'd have to carry these modifications
into my projects, which is not so good - I would prefer to just
stick to what MRI is doing.
Could we have the alias .prepend() for class Array, meaning
.unshift() too? That way I could use .prepend() for both Arrays
and Strings.
String#prepend and String#concat are a pair that work similarly (with just the difference on where the new substring is inserted). And since there is already Array#concat, introducing Array#prepend would suggest that they should work similarly. However, while Array#concat takes an array and uses that as sub-array of the original array, the proposed Array#prepend takes an object and uses that as an element of the original array. This is confusing. I don't think the proposal is good.
I too would expect Array#prepend to be the opposite of Array#concat, taking other_ary as a parameter, because that seems to more closely match the relationship between String#prepend and String#concat.