I know I said that I had no further comments on object oriented semantics. However, I found a contradiction in the R documentation.
Gabriel Becker wrote: > So, there are implicit classes, but *only when the data object is NOT an "R object" In the R Language Definition: > The R specific function typeof returns the type of an R object. > Lists have elements, each of which can contain any type of R object > Symbols refer to R objects. > Unlike most other R objects, environments are not copied So, according the the R Language Defintion, all objects in R, are R objects. However, in the help page for UseMethod(), which you've already mentioned: > An R object is a data object which has a class attribute (and this can be tested by is.object). So, according to this, an object in R, isn't necessarily an R object. These are contradictory to each other. And I believe that the R Language Definition is correct. So, the help page for UseMethod() should be changed to match the language definition. Hadley Wickham wrote: > Understanding the distinction between base types and S3 classes > is very important to make this sort of question precise Note that the R Language Definition does not mention either "base types" or "S3 classes". So, should I be understanding *your* distinction between them? Martin Maechler wrote: > I do agree with Gabe that (in some cases), using > formal (aka "S4") classes is really what one should do S4 doesn't always do intuitive things, either. Try the following example: > library (Matrix) > m = Matrix (1:24, 4, 6) > #expected output > print (m) > #not expected output > print (m, quote=FALSE) However, I still may consider using S4, especially where I would otherwise use a named list. [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel