Daniel Brockman wrote:

>Whatever String#[] and all the other String methods index, of course.
>  
>
Depending on the parameter you pass, #[] can return a String or an Integer.

>>There is no clear notion of an "Element" in a String.
>>    
>>
>If this is true, then we have a serious problem.  Before doing much
>anything about its API, we need to decide whether String is a byte
>array or a character array.  (Presumably, matz & co. already have.)
>  
>
There's no such thing as a character in Ruby. (See any discussion on 
Unicode, etc. in Ruby.) Strings are Objects (stored in C as char*s, I'd 
guess). Call the right methods on them, and you can get an Integer 
representing the byte value at a given position ("Hello"[0]), or another 
String object representing some manipulation of the String 
("Hello"[0..0]). Those are your only means of inspection. That was just 
a long-winded way of saying "this is true."

Anything I didn't reply to, I probably agree with. Since the String 
methods don't have a consistent notion of an "element," it doesn't seem 
it would hurt to choose whichever notion we want for a potential #shift 
method.

Devin