Larry Wall wrote:
> On Mon, Jul 11, 2005 at 09:46:30AM -0400, Stevan Little wrote:
> : On Jul 11, 2005, at 9:16 AM, Ingo Blechschmidt wrote:
> : > Bar.isa(Object); # true
> : > Bar.isa(Class); # true
> : > Bar.isa(Foo); # ? (my guess: false)
> : > Bar.isa(Bar); # ? (my guess: false)
> : I am not sure about this. I think that .isa as a class method should
> : behave much as it does for an instance method.
> Right, or you can't easily decide whether Bar isa Foo in the abstract.
> You need to able to reason about the relationships of user-defined
> classes in the absence of instances.
ah, of course, that makes sense.
> So anyway, that gives us something like:
> Bar.isa(Foo); # true
> Bar.isa(Bar); # true
> Bar.isa(Class) # false presuming Class is only a role
> Bar.does(Class) # true
> Bar.does(CLASS) # false
> Bar.meta.isa(Foo); # false
> Bar.meta.isa(Bar); # false
> Bar.meta.does(Class) # false
> Bar.meta.isa(CLASS) # false presuming CLASS is only a role
> Bar.meta.does(CLASS) # true
These make perfect sense, too. And there's a clear distinction between
Bar and Bar.meta, so I'm absolutely fine with that :)
Linux, the choice of a GNU | When cryptography is outlawed, bayl bhgynjf
generation on a dual AMD | jvyy unir cevinpl!