<<<
"that is going to silently return the wrong answer if it gets called
recursively." But what can the silent wrong answer be in this case since the
context is finalization? That is, can it be anything besides a memory leak?
>>>
The silent wrong answer could be anything, since there will be a single variable
shared between all the recursive instances, instead of one per instance.
It depends very much on exactly how the computation proceeds: in the case of
simple tail recursion, the variable is not going to be used by the caller any
more so it probably won't matter. But in the more usual cases, recursing will
overwrite the variable that still contains values that will be used. Whether
that leads to memory leakage, the "wrong answer", or some incredibly mysterious
crash an hour later depends entirely on what the variable contains and how it is
being used.
Cheers,
--
................................Malcolm Cohen, Nihon NAG, Tokyo.
|