Hello,

On Feb 13, 2014, at 2:16 PM, Ross Boylan <r...@biostat.ucsf.edu> wrote:

> Redefining methods of a refClass does not change the methods for existing 
> instances.  I found this somewhat surprising, and also pretty inconvenient 
> for debugging.
> 
> The documentation for reference classes does say that their methods should be 
> minimalist, which I suppose is partly because of this behavior.
> 
> Is there a way around this behavior apart from passing the pieces of the old 
> instance to the new constructor, or putting all computations in not class 
> functions?

I am interested in learning how others deal with this issue, too.

I use the latter method during development.  I write simple wrapper methods 
around the functions I am working on.  Once development becomes stable, I often 
choose to incorporate the function in the method but not always.  It's not a 
great system but it allows me to tweak the function until I get it right 
without a lot of fussing.

To my simpleton way of thinking, it seems like changes to the Reference Class 
definition might be 'pushable' into a particular instance's environment.  I 
don't know how to make that happen in a user friendly way.

foo_f = function(x, a = 3) {a * x}

foo <- setRefClass("foo")
foo$methods(f = function(x, ...) {foo_f(x, ...)})

x <- foo$new()
x$f(10)
# [1] 30
x$f(10, a = 2)
# [1] 20

Cheers,
Ben

> 
>> foo <- setRefClass("foo", methods=list(f=function(x) 3*x))
>> a <- foo()
>> a$f(10)
> [1] 30
>> foo <- setRefClass("foo", method=list(f=function(x) 2*x))
>> a$f(10)
> [1] 30
>> b <- foo()
>> b$f(10)
> [1] 20
> 
> Ross Boylan
> 
> ______________________________________________
> 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.

Ben Tupper
Bigelow Laboratory for Ocean Sciences
60 Bigelow Drive, P.O. Box 380
East Boothbay, Maine 04544
http://www.bigelow.org

______________________________________________
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