On Sun, Nov 30, 2003 at 02:55:09PM +1100, Greg McIntyre wrote: > I didn't ask what it does. I understand perfectly what "class << x" does > and how it works and all about anonymous classes. I apologize; I was only trying to help, not impugn your knowledge, And the reading "open x's class for modification" didn't sound like you understood it, since "class << x" *doesn't* modify x's class, but rather creates a new subclass just for x. > What I asked was, why is the syntax "class << x"? Is there a reason? > Why "class << x"? It's designed to suggest that something very similar to "class X < Y" (which defines a new class X as a subclass of Y) is going on. The main differences are: 1. the new class has no name (so there's nothing on the left of the <<) 2. the object on the right is not used directly as the superclass, even if it happens to be a class object; rather, its class is used. 2. that object is modified such that it becomes an instance of the new class (whereas class X < Y doesn't modify Y at all). -Mark