On Tue, Dec 7, 2010 at 1:12 PM, David Winsemius <dwinsem...@comcast.net> wrote: > > On Dec 7, 2010, at 12:42 PM, Gabor Grothendieck wrote: > >> On Tue, Dec 7, 2010 at 12:25 PM, Bert Gunter <gunter.ber...@gene.com> >> wrote: >>> >>> Ted: >>> >>> Inline below... >>> >>> On Tue, Dec 7, 2010 at 8:42 AM, Ted Harding <ted.hard...@wlandres.net> >>> wrote: >>>> >>>> Indeed! >>>> >>>> x <- x + 1 >>>> >>>> (and being generous with unnecessary spaces) uses 10 characters. >>>> >>>> `+`(x)<-1 >>>> >>>> (being mean with them) uses 9. The "mean" version of the first >>>> uses only 6: x<-x+1 >>>> >>>> However, I suppose there is merit in the spiritual exercise >>>> of contemplating how `+`(x)<-1 gets worked out! >>> >>> AFAICS it doesn't. >>>> >>>> `+`(x)<-1 >>> >>> Error in +x <- 1 : could not find function "+<-" >> >> Sorry, my code was missing the first line: >> >>> `+<-` <- `+` >>> >>> x <- 3 >>> `+`(x) <- 1 >>> x >> >> [1] 4 > > One can also attempt further creative violence to the language that shows > that is possible to construct unary operators like the C prefix-"+" that do > not require shift-9 <operand> shift-0. > >> `+` > function (e1, e2) .Primitive("+") >> `+` <- `-` # in a different universe perhaps >> 4 + 2 > [1] 2 >> `+` <- function (e1, e2) .Primitive("+") # attempt to restore >> 4 + 2 # test > function (e1, e2) .Primitive("+") ## oops >> `+` <- .Primitive("+") >> 4 + 2 > [1] 6 # "works" >> `!` <- function(x) x + 1 # hijacking a logical NOT definition >> !3 > [1] 4 # so this is a redefinition of one of the two unary operators > # ( of which I am aware, I'm not an R-guru.) > >> `!` <- .Primitive("!") ## hoping to restore expected behavior >> !3 > [1] FALSE # whew. That seemed dangerous but I appear to have survived.
Unlike the above, +<- is not predefined so its definition does not overwrite existing definitions. -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com ______________________________________________ R-help@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.