David A. Black said: > I'd go along with "directly influenced", but not > "determined"; that is, an object's "birth class" certainly has a role > to play in the object's method capabilities, but is not a determinant. As do all the ancestors in the > What I got from the quotation, and your gloss on it, was that > "metaclass" is recognized (outside of Ruby) to mean a factory for > classes, and that therefore it could be used to refer to a Class > object's singleton class. The analogy in the quote did indeed focus on the creation aspect, and I did indeed gloss over the fact that singleton classes don't create new instances. Perhaps the analogy was poorly suited for my point. What I was trying to communicate with the quote is that Metaclasses are to classes what classes are to objects. As classes hold the behavior for objects, metaclasses hold the behavior classes. A Metaclass is a class whose instances are classes (or in the case of a singleton metaclass, whos one and only instance is a class). > I must have garbled something I said somewhere along the line; I > definitely would never (knowingly :-) suggest that singleton classes > are not classes. See below.... And just as the inability to create new instances does not disqualify singleton classes from being classes, the inability for a singleton metaclass does not disqualify it from being a metaclass. > Correspondingly, if there is a "template for making cookie cutters > themselves" (to paraphrase) in Ruby, it would be the object Class > itself. Indeed, Class is the Metaclass from which all the singleton metaclasses derive. -- -- Jim Weirich jim / weirichhouse.org http://onestepback.org ----------------------------------------------------------------- "Beware of bugs in the above code; I have only proved it correct, not tried it." -- Donald Knuth (in a memo to Peter van Emde Boas)