On Fri, 09 Nov 2012 17:07:09 +1100, Chris Angelico wrote: > On Fri, Nov 9, 2012 at 12:39 PM, Mark Lawrence <breamore...@yahoo.co.uk> > wrote: >> On 07/11/2012 01:55, Steven D'Aprano wrote: >>> >>> >>> Who knows? Who cares? Nobody does: >>> >>> n -= n >>> >>> >> But I've seen this scattered through code: >> >> x := x - x - x > > Can you enlighten us as to how this is better than either: > x := -x > or > x := 0 - x > ? I'm not seeing it.
I'm hoping that Mark intended it as an example of crappy code he has spotted in some other language rather than a counter-example of something you would do. To be pedantic... there may very well be some (rare) cases where you actually do want x -= x rather than just x = 0. Consider the case where x could be an INF or NAN. Then x -= x should give x = NAN rather than zero. That may be desirable in some cases. At the very least, the compiler should NOT optimize away x = x - x to x = 0 if x could be a float, complex or Decimal. > And I'm not seeing any nonnumeric that would > benefit from being subtracted from itself twice (strings, arrays, sets, > you can subtract them from one another but not usefully more than once). How do you subtract strings? -- Steven -- http://mail.python.org/mailman/listinfo/python-list