function a iterates through itself, and can call function b.
memory usage slowly creeps up.
is it possible to have flat memory usage? it is my understanding that when a function ends, all the memory is freed up, but that does not seem to be the case here. there are no globals, no appending items to an array, b doesn't call a.