From: jdm Date: 2005-10-01T07:31:45+09:00 Subject: suggested changes for ruby libraries These are all relative to version 1.8.1. Don't know if any of these (have been)|(will be) incorporated in later versions. String.delete() currently takes only a String for an argument (albeit with limited regex functionality such as ^ and c1-c2). It would be useful, and orthogonal, to take a Regexp as an argument too (orthogonal in that most of the other String methods involving the specification/identification/location of a string take both String and Regexp arguments). Same comment as above for Array.delete(). When String.index() is given a multi-character String argument, it currently returns the index of the first occurrence of the *first* character of the argument. It would be useful to add an argument to tell it to return the index of the *last* character of the argument (this new argument should default to FIRST). For example: "hello".index("lo",FIRST) -> 3 "hello".index("lo",LAST) -> 4 A similar argument could be applied to String.rindex(). When supplied with two Fixnums, a Range, or a Rexexp, String.[] returns a String. But when supplied with a single Fixnum, it returns a Fixnum. For example: a="hello" a[2,2] -> "ll" a[1..3] -> "ell" a[1] -> 101 This behavior is very non-orthogonal (otherwise worded as "violates the Principle of Least Surprise"). String[Fixnum] should return a single character string as follows: a[1] -> "e"