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

Reply via email to