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