HaloO,
John M. Dlugosz wrote:
Using Dog in an expression (rather than a declaration) returns an
undefined protoobject of type Dog.
Yeah, an avatar.
But we already know that this is
supposed to work:
my ::Alias ::= Dog;
but maybe the RHS of ::= (if not :=) has its own special parsing
HaloO,
John M. Dlugosz wrote:
They are mixed! Perl treats types as first-class objects. For
functions, types don't need to be treated specially from other arguments
as in C++.
Looks like we need a third party ruling on that. Note that the
HOW is the meta class object and the WHAT the
HaloO,
John M. Dlugosz wrote:
Larry, you've wanted to have class names used within a class be
virtual. With various degrees of conviction across the synopses, you've
wanted classes defined within a class to be overridable, or all classes
referenced by a class to be overridable, speculating
as methods are virtual. I think more along the lines of
parametric polymorphism. So D implicitly is 'class D [::C = OUTER::C]'.
This ::C is bound to P::C in 'class E is D'.
Attributes are frozen into the base class and don't override the way
members do. That is why virtual class names don't apply to them
TSa Thomas.Sandlass-at-barco.com |Perl 6| wrote:
HaloO,
John M. Dlugosz wrote:
They are mixed! Perl treats types as first-class objects. For
functions, types don't need to be treated specially from other
arguments as in C++.
Looks like we need a third party ruling on that. Note that the
TSa Thomas.Sandlass-at-barco.com |Perl 6| wrote:
For functions, types don't need to be treated specially from other
arguments
as in C++.
Could you give an example of what you mean in C++ and how Perl differs
from that?
In C++, types are not first-class objects. You can't pass a type as
HaloO,
John M. Dlugosz wrote:
I hope you have a few minutes to look it over.
I started to think it through. There are two quick remarks.
In
module M
{
class C { ... }
class D
{
# lexical region where C refers to M::C
method m1 () { my
TSa Thomas.Sandlass-at-barco.com |Perl 6| wrote:
Second, I don't like the concept of a virtual method that returns
a type. That horribly mixes type level and value level. From the
They are mixed! Perl treats types as first-class objects. For
functions, types don't need to be treated
Larry, you've wanted to have class names used within a class be
virtual. With various degrees of conviction across the synopses, you've
wanted classes defined within a class to be overridable, or all classes
referenced by a class to be overridable, speculating on whether this is
do-able.