[Rd] Overloading methods in R
A.J. Rossini
blindglobe at gmail.com
Wed Apr 20 18:20:51 CEST 2005
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 at 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 at 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 at gmail.com
More information about the R-devel
mailing list