[R] Zero Index Origin?

Gabor Grothendieck ggrothendieck at myway.com
Thu Apr 1 08:51:59 CEST 2004


Bob Cain <arcane <at> arcanemethods.com> writes:

> A question I have from my very limited
> understanding yet of OO is whether such objects could be
> passed to legacy functions with any expectation of correct
> results.

Typically you need to write a wrapper but sometimes you get it for
free.  For example, in the vector0 class that I displayed previously,
note that no multiplication method was defined for it yet the
example included multiplication and it worked.  

Oarray would get the same benefit.

Note that if a routine f.legacy(x) does not make use of indices at all then
f(unclass(v)) where v is of class vector0 or Oarray would be sufficient
(untested).  Also you can define a generic that dispatches to the
appropriate class:

f <- function(x) UseMethod("f")    # defines a generic
f.Orray <- function(x) f(unclass(x))   
f.default <- f.legacy

Now you can call f(x) and if x is a legacy variable f.legacy gets
used and if x is Oarray then f.Oarray gets used.




More information about the R-help mailing list