[R] R as a programming language

Peter Dalgaard P.Dalgaard at biostat.ku.dk
Thu Nov 8 20:44:48 CET 2007


Duncan Murdoch wrote:
> 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.
>
>   
Exactly. But the issue in that case is not a difference on the order of 
Machine$double.eps but between "24" and "222" (from "2"+2+2).

Still, even numbers act up once you get into recycling rules: Try
1:2+1:3+1:4

(We've been here before, haven't we?)

> Duncan Murdoch
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>   


-- 
   O__  ---- Peter Dalgaard             Øster Farimagsgade 5, Entr.B
  c/ /'_ --- Dept. of Biostatistics     PO Box 2099, 1014 Cph. K
 (*) \(*) -- University of Copenhagen   Denmark          Ph:  (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk)                  FAX: (+45) 35327907



More information about the R-help mailing list