It works better if you give setClass the right arguments.
In your second call, you omitted the representation= argument, so you
need to name the prototype argument:
setClass("AtomList"
,contains="List"
,prototype prototype(content="Atom")
## would like
to specify this
)
With this change:
R> new("AtomList")
An object of class "AtomList"
list()
Slot "uniq":
[1] FALSE
Slot "content":
[1] "Atom"
(We can probably do some bullet-proofing, since the object returned from
prototype() has a specific class, but that may have to wait until
2.0.1.)
Wolski wrote:>
> Hi!
>
> To specify a prototype in the setClass declaration is a great feature.
> But prototype seems no to work for slots of the "super" class.
> eg. The following code is declaring first the super class "List".
This class has a slot "content".
> The class "AtomList" inherits from it and I would like to set
content="Atom" by prototype(content="Atom").
> But after new("AtomList") is called the slot content is empty as
you can see running the code below.
>
> setClass("List"
> ,representation(
> uniq="logical"
> ,content="character"
##### would like to set this when declaring the inheriting class.
> ,names="character")
> ,contains="list"
> ,prototype(uniq=FALSE)
> )
>
> setClass("AtomList"
> ,contains="List"
> ,prototype(content="Atom")
## would like to specify this
> )
>
> new("AtomList")
>
> An object of class "AtomList"
> list()
> Slot "uniq":
> [1] FALSE
>
> Slot "content":
> character(0)
#######<-still not specified even if provided in prototype.
>
> Slot "names":
> character(0)
>
> Version:
>
> R : Copyright 2004, The R Foundation for Statistical Computing
> Version 2.0.0 alpha (2004-09-14), ISBN 3-900051-07-0
> or
> R1.9.1 patched.
>
> /E
>
> ______________________________________________
> R-devel@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
--
John M. Chambers jmc@bell-labs.com
Bell Labs, Lucent Technologies office: (908)582-2681
700 Mountain Avenue, Room 2C-282 fax: (908)582-3340
Murray Hill, NJ 07974 web: http://www.cs.bell-labs.com/~jmc