In a message dated Fri, 1 Sep 2006, Juerd writes:
Trey Harris skribis 2006-09-01 0:17 (-0700):
I think these semantics are Almost Right, but yet Entirely Wrong. The
problem is that C<but> reads to me as a *mutating* operator. That is, I
would expect the above code snippet to give me a C<$z.y> of 17, but leave
C<$p.y> as 0. Surely this is what one would expect from analogy of
In the terminology that I have been using, that would not be a mutating
operator, but a copying operator, exactly because the operand $p remains
untouched.
Yes... I changed "copying" to "mutating" back and forth a couple times,
and then gave up, because of the "is clone" semantics I actually wanted
and didn't have a name for.
where C<is clone> is a conjectural way of calling .clone if the argument
is an object type but reduces to C<is copy> if the argument is a value
type.
Oh, I like "is clone" with these semantics. Though everything is an
object, so you'd need a different explanation...
Well, I'd say "value type" and "reference type", except we don't have
references anymore either. "value type" versus "non-value type", I guess.
Whether it defines .SKID or not?
Trey