Austin (>), Jonathan (>>), Austin (>>>): >>> One of the things that has been griping my wagger recently is the fact >>> that P6protoobject overrides vtable_defined so that protoobjects are always >>> considered undef. >>> >>> Is there a good reason for this? >> >> Yes; proto-objects are what fill the niche of (typed) undefined values in >> Perl 6. > > I have no clue what that means. Can you elaborate?
When I do... my Int $foo; ...what ends up sitting in the variable $foo is the 'type object' (the object formerly known as 'protoobject') Int. Similarly, my $foo; ...will store an undefined Any type object in $foo. The utility of type objects being undefined is that that meshes well with them being stored in the variables from the beginning. The reason we want to store type objects in the variables upon declaration is so that we can do things like my Dog $fido .= new; ...which is short for.... my Dog $fido = Dog.new; This works exactly because the type object is already in the variable when the '.=' is called. // Carl _______________________________________________ http://lists.parrot.org/mailman/listinfo/parrot-dev
