Overloading methods in R
R.oo tries to implement an old-fashioned OO system as found in Java, Python, C++, etc. R's S4 methods implement a nice modern system based on the generic function approach , dispatch on argument signatures, which is different. While the R documentation for S4 classes is quite useful (spanning the green book, the BioC developer help pages, V&R's book on programming, and some other papers), I've found that for a nice background, Paul Graham's ANSI Lisp book, and in particular the nicely written chapter on CLOS, provides a nice introduction to the thought process. With respect to the R.oo package, the author might be the best source for that. Another package which you might take a look at is the proto package, which provides prototype object-orientation similar to that found in XLispStat, and also might help with what you are trying to do. However, I suspect that learning about the S4 system will provide more benefit in the future. best, -tony
On 4/20/05, Ali - <saveez@hotmail.com> wrote:
Sean, Thanks, but, I am actually talking about overloading 'methods' and not 'functions', or you may want to answer this question: How to overload methods in classes created by R.oo package?
On Apr 20, 2005, at 8:16 AM, Ali - wrote:
(1) It seems to me that, generally, in R it is not possible to overload
functions. Is that right?
(2) Assuming that the above is true, or partially true, is there any
extra packages to handle overloading in R?
(3) Assuming (1) is TRUE and (2) is FALSE, can anyone provide some advice
on developing some function that understand what the arguments are and
then calls the right overloaded function?
It would be something like this:
overloadedFunction1 <- function(x) {};
overloadedFunction2 <- function(x, y) {};
theFunction <- function(...)
{
# How to identify ... and call the right overloaded function?
}
Ali, You are probably interested in "methods". Functions can have different "methods" depending on what the arguments and their types are. A first place to look is: http://cran.r-project.org/doc/manuals/R-exts.html#Generic-functions- and-methods Sean
______________________________________________ R-devel@stat.math.ethz.ch mailing list https://stat.ethz.ch/mailman/listinfo/r-devel
best, -tony "Commit early,commit often, and commit in a repository from which we can easily roll-back your mistakes" (AJR, 4Jan05). A.J. Rossini blindglobe@gmail.com