Simon Cozens wrote:
> ...and I don't know if macros are actually objects and can be tossed
> around, or if they're just part of the compilation process.

they have their proper place in the diagram Larry put in A6.
furthermore, he says:

"These syntactic forms correspond the various Routine types in the
Code type hierarchy"

so Macro seems to be at least a type. which leads me to the question:
is Macro "also" a class? and which is the difference between a type
and a class? hm, I guess this will be answered in A12, so I'll
probably have to wait on this.

I also have another question (probably related, and probably also for
later). consider this:

sub mygrep( Code &block, [EMAIL PROTECTED] is rw ) {...};
sub mygrep( Block &block, [EMAIL PROTECTED] is rw ) {...};
sub mygrep( Routine &block, [EMAIL PROTECTED] is rw ) {...};
sub mygrep( Sub &block, [EMAIL PROTECTED] is rw ) {...};
sub mygrep( Method &block, [EMAIL PROTECTED] is rw ) {...};

is something like this allowed? and what is the meaning then? if logic
serves me correctly, this shouldn't work:

  sub mygrep( Routine &block, [EMAIL PROTECTED] is rw ) {...};
  mygrep { $_ < 2 }, 1, 2, 3;

because { $_ < 2 } is a Block, not a Routine! it should be written
like this:

  sub smaller_than_two ($value) { return $value < 2 }
  mygrep smaller_than_two, 1, 2, 3;

but this doesn't seem to make much sense. one should probably have
said 'Code &block' (or '&block' alone, which I suppose is just the
same), but then what's the use of 'Routine', 'Sub', 'Method' etc. as
types?

also, it's not clear to me the distinction between isa-relationship
and namespace. I see that 'Rule' (and I presume 'Sub', 'Routine',
'Code', etc.) are all type names, but I wonder if 'Bare' is a type of
its own -- or it is 'Block::Bare'? the latter sounds much better :-)

in my class hierarchy I mixed 'probable' isa-relationships (eg. Sub
isa Routine isa Code) with 'probable' proper namespace hierarchy (eg.
Exception::Control::return, not return isa Control isa Exception).
and this is probably very, very wrong.

or maybe I'm just playing with dangerous toys that aren't intended for
a little kid like me :-)

> I think Type should be called Value, and that arrays should possibly
> be a mixin of lists, but apart from that it looks fine. Oh, and you
> missed out Grammars; ...

thanks, applied :-)


cheers,
Aldo

__END__
$_=q,just perl,,s, , another ,,s,$, hacker,,print;

Reply via email to