Re: [Rd] group generics

From: Ross Boylan <ross_at_biostat.ucsf.edu>
Date: Thu, 03 Dec 2009 14:59:29 -0800

On Thu, 2009-12-03 at 14:25 -0800, John Chambers wrote:
> I missed the earlier round of this discussion and only am commenting
> now to say that this doesn't seem weird at all, if I understand what
> you're trying to do.
>
> Martin's basic suggestion,
> v <- callGeneric(e1, as(e2, "A"))
> seems the simplest solution.
>
> You just want to make another call to the actual generic function,
> with new arguments, and let method selection take place. In fact,
> it's pretty much the standard way to use group generics.
>
> John
There were 2 weird parts. Mainly I was referring to the fact that identical code (posted earlier) worked sometimes and not others. I could not figure out what the differences were between the 2 scenarios, nor could I create a non-working scenario reliably.

The second part that seemed weird was that the code looked as if it should work all the time (the last full version I posted, which used callNextMethod() rather than callGeneric()).

Finally, I felt somewhat at sea with the group generics, since I wasn't sure exactly how they worked, how they interacted with primitives, or how they interacted with callNextMethod, selectMethod, etc. I did study what I thought were the relevant help entries.

Ross
>
>
> Ross Boylan wrote:
> > Thanks for your help. I had two concerns about using as: that it would
> > impose some overhead, and that it would require me to code an explicit
> > conversion function. I see now that the latter is not true; I don't
> > know if the overhead makes much difference.
> >
> > On Thu, 2009-12-03 at 13:00 -0800, Martin Morgan wrote:
> >
> > > setMethod("Arith", signature(e1="numeric", e2="B"), function(e1, e2) {
> > > new("B", xb=e1*e2_at_xb, callGeneric(e1, as(e2, "A")))
> > > })
> > >
> >
> > Things were getting too weird, so I punted and used explicitly named
> > function calls for the multiplication operation that was causing
> > trouble.
> >
> > Ross
> >
> > ______________________________________________
> > R-devel_at_r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-devel
> >
> >



R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel Received on Thu 03 Dec 2009 - 23:02:17 GMT

This archive was generated by hypermail 2.2.0 : Fri 04 Dec 2009 - 02:31:02 GMT