Dear all,

what is the proper way to make the assignment operator generic and define 
methods depending on the class of the assigned value?

Best regards


Jens Oehlschlägel

P.S. I vaguely remember that this was possible in S+. In R I tried to no avail: 

  # using this like h<-1:3 gives Error: in `<-.default`(h, 1:3) : invalid 
(do_set) left-hand side to assignment
  "<-.default" <- get("<-") 

  # using this does fail on subassignments like: h <- 1:3 ; h[1] <- 7 (h still 
is 1:3)
  "<-.default" <- function(x, value){
    assign(deparse(substitute(x)), value, parent.frame())
    invisible(x)
  }

  # this seems to work
  "<-" <- function(x, value){
    UseMethod("<-", value)
  }

  # whenever the assigned value has class 'ff' I want to do execute something 
like
  "<-.ff" <- function(x, value){
    y <- clone(value)
    assign(deparse(substitute(x)), y, parent.frame())
    y
  }


> version
               _                           
platform       i386-pc-mingw32             
arch           i386                        
os             mingw32                     
system         i386, mingw32               
status                                     
major          2                           
minor          6.0                         
year           2007                        
month          10                          
day            03                          
svn rev        43063                       
language       R                           
version.string R version 2.6.0 (2007-10-03)

--

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to