[R] R as a programming language
Duncan Murdoch
murdoch at stats.uwo.ca
Thu Nov 8 19:02:22 CET 2007
On 11/8/2007 11:51 AM, Thomas Lumley wrote:
> On Wed, 7 Nov 2007, Duncan Murdoch wrote:
>
>>
>> At first I thought you were complaining about the syntax, which I find
>> ugly. There was a proposal last year to overload + to do concatenation
>> of strings, so you'd type cat("x=" + x + "y=" + y + "\n"), but there was
>> substantial resistance, on the grounds that + should be commutative.
>>
>
> My objection, at least, was that + should be *associative*. I don't think
> anyone would expect a + b and b+a to be the same for strings, but I do
> think the fact that (a+b)+c and a+(b+c) would be different (if some of a,
> b,c were strings) has real potential for ugliness.
Sorry, I forgot about that. I think there were complaints about both
commutativity and associativity.
I do think lack of associativity is a less impressive complaint, because
it doesn't even hold for floating point addition without mixing types:
> x <- .Machine$double.eps/2
> A <- (1 + x) + x
> B <- 1 + (x + x)
> A == B
[1] FALSE
As far as I can see, string concatenation would only lose associativity
when some of the operands were automatically converted to strings.
Mixed type operations often give surprising results.
Duncan Murdoch
More information about the R-help
mailing list