On the subject of clarification, Reference Classes are not really an "addition" to S4. They are a programming interface to allow OOP (i.e., C++ or Java-style) programming in R.

They do use some S4 tools but rely more on some valuable existing techniques for dealing with environments, such as active bindings. They use a thin layer on top of existing R with the goal of simpler and clearer programming where object references and class-based methods are useful.

John

On 11/17/10 2:34 AM, Simon Urbanek wrote:
Just a clarification for posterity - R5 has nothing to do with the new 
reference classes. It's not even an official name, but informally it's a 
collection of ideas for an entirely new object system that can replace both S3 
and S4 (not that it will but it should be seen as having the capability to do 
so technically). Reference classes are just an addition to S4.


Cheers,
Simon


On Nov 16, 2010, at 12:30 AM, Janko Thyson wrote:

Sorry, I was stupid:



MyRefObj<- setRefClass("Blabla", .)



One can always get the generator object of an defined class with
'getRefClass()'. So:



g<- getRefClass("Blabla")

x<- g$new(.)



Regards,

Janko





Von: Janko Thyson [mailto:janko.thy...@ku-eichstaett.de]
Gesendet: Dienstag, 16. November 2010 00:27
An: 'r-de...@r-project. org'
Betreff: R5 reference classes: how to initialize exactly?



Dear List,



So far, I really like those new R5 classes. But what kind of puzzles me is
that it's not just enough to define the actual reference class, I also have
to assign it to an object (e.g. 'MyRefObj') in order to fire
'MyRefObj$new(.)'.



S4:

setClass("Blabla", .)

x<- new("Blabla")



R5:

MyRefObj<- setRefClass("Blabla", .)

x<- MyRefObj$new(.)



But then how do I define a reference class in a package that should be
available after the package is loaded via 'library(my_pkg)' as there is no
'MyRefObj' at startup yet? Do I have to call the script where the definition
lives?



Thanks for any comments,

Janko




        [[alternative HTML version deleted]]

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel



______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to