Memory bloat -- what have I done?

*To*: mathgroup at smc.vnet.net*Subject*: [mg19219] Memory bloat -- what have I done?*From*: "Aram Schiffman" <aram at sirius.com>*Date*: Tue, 10 Aug 1999 02:53:05 -0400*Organization*: Posted via Supernews, http://www.supernews.com*Sender*: owner-wri-mathgroup at wolfram.com

Hi. Help? I have this: outOfHoleIndex = {}; If[MemberQ[inHoleIndex, #] === False, AppendTo[outOfHoleIndex, #],] & /@ nums; inHoleIndex is an array of reals, inHoleIndex//Length is about 8000 or so. Nums is just the counting numbers {1,2,3,...11875}. I check MemoryInUse[] before and after, and get -- a difference of about 158 megabytes! Huge! What the hell am I doing wrong? If I do Unprotect[Out]; Clear[Out]; Protect[Out]; Then I get most of that memory back. Also, if I rig the code so that MemberQ is always True (i.e., never AppendTo outOfHoleIndex), this big chunk of memory never gets moved. I guess I don't understand how AppendTo contributes to Out, here, and more importantly, how to write my code correctly. Anyone? Thanks, Aram