On Monday, November 11, 2002, at 12:13  PM, Angel Faus wrote:
In my opinion, this outline puts too much weight on the first section.
I would prefer it to be made of just the basic concepts and have
forward references to the apropiate sections.
Agreed. I was just listing all the *possible* cruft that had to go in somewhere... if you look at /val.html, you'll see it doesn't even have half of it.

A final question: I am afraid I don't know what "implementing type"
and "overloading implementing type" are about. Could you explain
them? Thanks.
Assume you have:

my str $a;
my str @b;
my str %c;

this can also (tentatively) be represented as:

my $a;
my @b is Array of str;
my %c is Hash of str;

or, extrapolating:

my $a is Scalar of str;
my @b is Array of str;
my %c is Hash of str;

In other words, each variable has at least two types: the type the variable "stores" (str) and the type the variable "is" (Scalar, Array, Hash). It's the latter type that is the "implementing" type.

This is only important because it's presumably possible to declare Scalars, Arrays, and Hashes that are based on other classes:

class OrderedHash is Hash { ... }

my %c is OrderedHash of str;

.... which gets you functionality very similar to a 'tie', but more consistent and easier to use.

There's a ton of tricky questions in this that we need to figure out, (as soon as we get through the first how-the-heck-will-we-document-things decisions.)

MikeL



Reply via email to