Memory handling in lists/arrays allocation/deallocation



I'd like to know how to efficiently manage lists/arrays
allocation/deallocation in Maxima,
'cause i've experienced that the execution of a code like

for i:... do (                /* lots of times */
list :  certain_function_of_i_that_returns_a_list,
...                           /* other operations over list */
)

maybe really RAM-consuming.
Thanks in advance.