On Tue, Aug 16, 2005 at 01:33:56AM +0800, Autrijus Tang wrote:
: On Mon, Aug 15, 2005 at 08:19:38AM -0700, Larry Wall wrote:
: > I think the distinction is still useful to document that there are
: > still unbound types.  What we need to emphasize is that a role can be
: > used as a class, at which point any unbound types are bound to Any,
: > or whatever we're calling it these days.  I'd say Array is a role,
: > not a class.  So these all might do different things:
: > 
: >     class LoudArray is Array { ... }
: >     role LoudArray does Array { ... }
: >     role LoudArray is Array { ... }
: 
: So the last line means a role can be used just like a class, and
: _inherit_ its behaviour as well?
: 
:     role Point { has $.x; has $.y; method move_right { $.x++ } };
:     role MyPoint is Point {
:       method move_right { ./SUPER::move_right(); $.y++; }
:     }

It means that when MyPoint is finally nailed down into a class, that
class will inherit from Point.  The role itself doesn't inherit.

Larry

Reply via email to