Hi sir David (aka dblack / candle.superlink.net [mailto:dblack / candle.superlink.net]): You remarked last Monday, December 09, 2002 11:30 AM: > > > String#concat is a synonym for String#<<, and since it > modifies the > > > object, a concat! version wouldn't make sense. You can > indeed use > > > String#+ if you want to create a new string instead of > modifying the > > > old one. > > > > To be fair here, it might be argued that the String#concat alias is > > misnamed and *IT* doesn't make sense, given what it does. > Seems to me > > (and I'm guessing Botp) that the alias SHOULD be String#concat!. > > Not every method that modifies the receiver has a ! -- for > example, String#replace. (If there were a replace!, then the > original replace would just be dup :-) I guess to me > 'concat' has the same inherently change-rendering implication Then #replace method is another thing I would avoid since the syntax/naming has implications or assumptions. Syntax/Naming should be unambiguous as much as possible, imho... Why can we not standardize on suffixing "!" on methods that modifies objects? Are they too many? Though, this is not a big problem for me really, as of now, since I'm actually avoiding them.. :-) > that 'replace' does; it sounds like an order is being issued > that something be done to the object. > > By way of (merely illustrative) contrast: if there were a method > String#concatted_with(other_string) I would expect that to > generate a new object. imho, I prefer #concat and #concat! > David Many thanks, sir David. kind regards, -botp