On Sat, 2002-05-11 at 17:43, Damian Conway wrote:
> Paul Johnson wrote:
>
> > I've always found the word "like" to be very wishy-washy in a computer
> > langauge. In what way is newbaz like baz? And just how alike are they?
> > There must be a better way to describe this.
>
> Perhaps:
>
> method set_baz($newbaz is compatible($.baz)) { $.baz = $newbaz }
> method set_baz($newbaz is typeof($.baz)) { $.baz = $newbaz }
I don't like the second one, as it implies that Perl has types, which it
really doesn't (properties are just that, properties).
The first is a bit long, but I could get behind it in a crunch.
However, my first thought is, "why do we need a keyword here?"
Since it's not otherwise valid syntax (the semi-unofficial battle-cry of
perl6-language ;-), I propose:
method set_baz($newbaz is $.baz) { .baz = $newbaz }
There's two ways to take C<$x is $y>. I think it's easy enough to get
people used to the idea that aliases are created vi C<:=>, so there's
really only one left.
And, yes I do think that using the auto-accessor is more correct. It
should be in-lined under most circumstances, but if someone comes along
later and moves that accessor into a super-class, we're still good.