Patrick R. Michaud wrote:
My question is whether the change to @a inside the for loop
affects the iterator created at the beginning of the for loop.
Since Larry said that single assignment semantics is the ideal
we should strive for, I would opt for the iterator being unaffected
by the assignment to @a. When this happens the singly assigned
former content of @a is snaphot by the iterator. This also preserves
the former lazyness state. If possible the optimizer factors
out the assignments after the loop.
"The unavoidable price of reliability is simplicity" -- C.A.R. Hoare
"Simplicity does not precede complexity, but follows it." -- A.J. Perlis
1 + 2 + 3 + 4 + ... = -1/12 -- Srinivasa Ramanujan