Keyword same in right hand side of assignments (rev)

R

R. David Murray

What I would like is to extend the augmented assignment
and make it easy to understand for naive readers.

Good luck. :)
I hope the following literary definition
is consistent enough to convey the correct meaning:
  "whenever it is possible, modify the target IN PLACE
  according to the right hand side expression.
  If it is not possible to do such a thing,
  substitute the target object with
  an object that is build according to the right hand side expression
  and subsequently deleted"

I don't think that last part is expressing your intent. If you delete
the object you've constructed you've got nothing left for the target to
point to. From what you say later I think you are confusing identifiers
with objects in this text.
The following examples should be correct:
  "xx = same + 5"  synonymous with  "xx += 5"
  "value =  2*same + 5"  synonymous with  "value =*2; value +=5"
  "switch = 1 - same"  synonymous with  "switch *-1; switch +=1"
  "lst = same + [5,6]"  synonymous with  "lst += [5,6]"
  "lst[2] = 1/same" synonymous with  "lst[2] **=-1"

Your revised intent breaks my expectations of how python's assignment
operator works. At least with += and kin I'm alerted to the fact that
something weird is going on by the fact that the assignment operator
is different.
The following examples would be extensions:
  "lst = [5,6] + same" synonymous with
      "lst.reverse(); lst.extend([6,5]); lst.reverse()"
  "inmutable = same*(same+1)"  synonymous with
      "unused=inmutable+1; inmutable*=unused; del unused"

There seems to be no really simple expression for the above extensions,
and I take that as an indication
that the proposed feature could be quite useful.

For the first one, we have:

lst[:0] = [5, 6]

And unless I'm misunderstanding you, the second one is trivially
expressed as:

immutable = immutable*(immutable+1)

I'm afraid I'm -1 on this proposal even without the issue of the keyword.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top