I agree, your proposed syntax is much nicer.
I did see somethings surprising.
In:
class Point {
has Num ($x, $y);
method inverted () {
return Point->new( x => $y, y => $x );
}
}
you have $x instead of $self->x (likewise for $y).
I found this surprising, and had to pause to think for a second or 2. How common is it in other OO languages to not need "self" to reference instance variables in instance methods? Personally, I don't recall ever seeing it done without "self". (Been so long since I last used C++ that I had forgotten.)
More surprising was:
class Cache::LRU {
use Hash::Ordered;
our $num_caches = 0; # class data (unused
+in this example)
my $x = Hash::Ordered->new; # private instance da
+ta
has UInt $max_size = 20; # public instance dat
+a
method set ( Str $key, $value ) {
if ( $x->exists($key) ) {
$x->delete($key);
where $x is also an instance variable.
(Just some additional thoughts.)
|