git.net

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

I'm wrong or Will we fix the ducks limp?


Op 09-06-16 om 12:53 schreef BartC:
> On 09/06/2016 10:46, Antoon Pardon wrote:
>> Op 09-06-16 om 09:36 schreef Steven D'Aprano:
>
>>> Your example demonstrates object mutation, not assignment.
>>
>> Generally assignment and mutation don't contradict each other.
>> So IMO the cause is the same, a mutation. In some languages you
>> can mutate your variable through an assignment and in others you
>> can't.
>
> I think this is what is confusing you.
>
> Mutation is like repairing or customising my car.
>
> Full assignment is like buying a new car.

I think you are confused. Full assignment of C struct or
Pascal record is the same as mutating all individual
attributes. You don't get a new record/instance as in
Python. You replace the value of the attributes with
something else.

As far a language semantics are concerned, you get the
(new) car at scope entry, all assigments later are
mutations.

You may think of assignment as like buying a new car,
that is not how the semantics of languages like pascal
and C are defined.