>> Another important reason is that in cases like >> >> a[long_and_expensive_call()] = a[long_and_expensive_call()] + 1 M-A> Dito for this one: M-A> i = long_and_expensive_call() M-A> a[i] = a[i] + 1 Only if you know that long_and_expensive_call() has no side effects! Skip