Thomas Lumley wrote: > On Sat, 26 Aug 2006, John Chambers wrote: > > >> Well, two comments, in two non-compatible directions. >> >> 1. I have to say that I find the idea of using "+" to paste character >> strings together aesthetically ugly. >> > > Hear, hear! > > In a language where you can define new binary operators easily making the > same operator do addition and concatenation really doesn't seem a good > idea. It is done in some other languages, but so is using the same > operator for printing and multiplying by powers of two. > The argument isn't that there is one language that does this, there are lots. This is why we should not define "-" or "*" or "^" for strings; those definitions might be convenient, but are not widespread enough to increase the clarity of source code.
And it's not a matter of defining "+" to do concatenation in some cases, addition in others: it's defining addition of strings to *be* concatenation. That's an important difference. > Lack of commutativity is obvious, but lack of associativity seems much > more dangerous. Suppose x, y, and z are a mixture of strings and numbers. > Hands up everyone who knows (without cheating) whether x+y+z would be > interpreted the same way in R (with the current parser) as in Java or > Delphi or Python (and are these all the same?). Which of > "two + two = " + 2 + 2 > 2 + 2 + " = two + two" > would be correct? > I would say that no reasonable language should define whether a+b+c is equal to (a+b)+c or a+(b+c). This isn't a problem particular to the proposed string addition, in general floating point addition isn't associative either, and in R, even addition of integers isn't associative. People who write a+b+c should be willing to accept either result. Duncan Murdoch > -thomas > > Thomas Lumley Assoc. Professor, Biostatistics > [EMAIL PROTECTED] University of Washington, Seattle > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel