On 25/04/2010 9:07 AM, Albert-Jan Roskam wrote:
Hi,

I'm having trouble seeing the added value over functions defined by setGeneric 
vis-a-vis
methods defined by inheritance and polymorphism. setGeneric offers a 'clean' call 
to a generic function, ie. no need to call new(), so less typing to do for the 
user. But such explicit calls can also be avoided by functions like f <- 
function(x, y) new(Class = SomeClass, x=x, y=y). Then again, R relies heavily on 
method dispatching, so it must have clear advantages.

*confused* Can anybody enlighten me? Thanks in advance!

I agree you are confused. setGeneric sets up a function to use to dispatch methods on an object; e.g. the stats4 package defines the generic AIC, so that AIC(obj) will calculate the AIC for any object that provides an AIC method. new() is not involved, because the object was already created somewhere else.

What you seem to be asking about is something like a constructor function. E.g. if I have a class "SomeClass", instead of new("SomeClass", x=x, y=y) I might prefer to type SomeClass(x=x, y=y). That's possible (you have to do it yourself, like your f() above), but is really unrelated to setGeneric.

Duncan Murdoch

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to