Simple question: if I answer a code golf with a function (for a task which is supposed to terminate), does the function actually have to be reusable? Or could it, say, modify some globals which break the function when called again?
(Note that this is not about whether functions may modify their inputs. I'm assuming that for each subsequent use the function is called with fresh copies of their arguments.)