Keyword same in right hand side of assignments (rev)
Thank you very much for correctly remarking that the "definition" I formulated contradicts the examples I gave and is therefore utterly inadecuate:
It is proposed to introduce a Keyword "same", to be used in the right hand side of assignments, as follows: "xx = same + 5" or "...DELETED..." 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 = [5,6] + same" synonymous with "...DELETED..." "lst[2] = 1/same" synonymous with "lst[2] **=-1" and so on.
What I would like is to extend the augmented assignment and make it easy to understand for naive readers. 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" 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" 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.
participants (1)
-
hwpuschm@yahoo.de