[R] how to overwrite a Unary operator ?

PO SU rhelpmaillist at 163.com
Fri Oct 17 10:06:29 CEST 2014


Tks for your alternative way's details. but like you mentioned in graphics package, i still wonder how to overload an operator which can pass one param like +2 .
There seems exists some examples for my needing. But i try to find them but without any results.
can you show me some examples from it? 






--

PO SU
mail: desolator88 at 163.com 
Majored in Statistics from SJTU



At 2014-10-17 15:16:47, "David Winsemius" <dwinsemius at comcast.net> wrote:
>
>On Oct 16, 2014, at 10:36 PM, PO SU wrote:
>
>>
>> Tks for your advice,  let the ++ problem alone, how to write an  
>> Unary operator ? Is it permitted in R?
>> such    as    a<-2 , a%+2%  will let a  be 4 .
>
>OK, that's just wrong. Oh, OK, just for fun, as it were:
>
>inc <- function(x)
>{
>  eval.parent(substitute(x <- x + 1))
>}
>
>
> > inc(10)
>Error in 10 <- 10 + 1 : invalid (do_set) left-hand side to assignment
> > y=10
> > inc(y)
> > y
>[1] 11
>
>
>> I just want to know it , i won't pollute r with it , because i know  
>> what is r .  : )
>>
>It's certainly permitted. Just look at all the overloadings of the "+"  
>operator in graphics packages. Look up the documentation on methods in  
>R.
>
>Why not just use a well-behaved function, though?
>
>.inc <- function(x) x+1
> > .inc(10)
>[1] 11
>
>Then you won't be tempted to try 10 <- .inc(10) because it just  
>wouldn't make sense.
>
>-- 
>David.
>
>> --
>>
>> PO SU
>> mail: desolator88 at 163.com
>> Majored in Statistics from SJTU
>>
>>
>>
>>
>> At 2014-10-17 13:09:47, "Rolf Turner" <r.turner at auckland.ac.nz> wrote:
>>> On 17/10/14 17:29, PO SU wrote:
>>>>
>>>> Dear expeRts,
>>>>   Now i want to know how to implement an Unary operator like  i++  
>>>> in cpp's  synax form.
>>>>   e.g.   2++  will let 2 be 3 ,  a<-2 ,a++ ,will let a be 3
>>>> I tried this :
>>>>  '%++%'<-function(x){
>>>>    x<<-x+1
>>>> }
>>>> but it have problem, the biggest one is it seems the function need
>>>> twoparams like a%++%b , how to write a function needing just one  
>>>> param?
>>>>
>>>> TKS !
>>>
>>> Just ***DON'T***.  The "++" operator is useful only for those wish to
>>> write code which is obscure to the point of incomprehensibility.  It
>>> makes C and its offspring "write only" languages.
>>>
>>> If you are going to use R, use R and don't pollute it with such
>>> abominations.
>>>
>>> cheers,
>>>
>>> Rolf Turner
>>>
>>>
>>> -- 
>>> Rolf Turner
>>> Technical Editor ANZJS
>> ______________________________________________
>> 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.
>
>David Winsemius, MD
>Alameda, CA, USA
>


More information about the R-help mailing list