>>>>> "Martin" == Martin Morgan <[EMAIL PROTECTED]> >>>>> on Thu, 17 Aug 2006 15:35:53 -0700 writes:
Martin> Extracting prototype structure apparently relies on list properties of Martin> the earlier S4 implementation. Martin> Martin >> setClass("A", representation(x="numeric")) Martin> [1] "A" >> str(getClass("A")) Martin> Formal class 'classRepresentation' [package "methods"] with 11 slots Martin> ..@ slots :List of 1 Martin> .. ..$ x: atomic [1:1] numeric Martin> .. .. ..- attr(*, "package")= chr "methods" Martin> ..@ contains : list() Martin> ..@ virtual : logi FALSE Martin> ..@ prototype :Error in object[1:ile] : object is not subsettable Thank you, Martin, As you probably know, in R-devel, S4 objects have been changed "under the hood" to finally have become ``first rate'' R entities; and more changes are expected before release. I agree you've found an "infelicity" in the current setup, since > setClass("A", representation(x="numeric")) [1] "A" > getClass("A")@prototype <S4 Type Object> attr(,"x") numeric(0) > length(getClass("A")@prototype) [1] 1 > getClass("A")@prototype[1] Error in getClass("A")@prototype[1] : object is not subsettable > It's not clear yet to me *what* should be changed. For my taste, if length(object) returns 1, I'd typically want that object[1] should be valid; but I think we already have some (peculiar) exceptions to that rule. If you look at such prototypes for more complicated classes, you get even more the impression that some bit (maybe literally?) is missing somewhere. Martin ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel