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