Haskell is lazy evaluated. So data isn't "dropped" until all the thunks that use it are evaluated.

Play around with foldl and foldl'. The strict evaluation of the accumulator in foldl' prevents a large thunk from forming and eating up all the memory


On Sun, Jul 10, 2016 at 10:26 AM Will Yager <will.yager@gmail.com> wrote:
I'm not an expert here, but the GC should not allow that to happen if you were truly no longer using the elements. Most likely you have a dangling reference to the list head or something. Please post your code.

Will

> On Jul 10, 2016, at 11:41, Christopher Howard <ch.howard@zoho.com> wrote:
>
> Hi, short version of the question: when elements are 'drop'ped from a
> list, when is the memory for those elements released? And is there some
> way to control that?
>
> Longer version: I have this situation where I've got a State monad
> carrying a Data.Matrix, and I...
>
> 1) generate in infinite list of monadic operations with (repeat mf)
> where mf is a monadic function.
> 2) 'sequence' (from Control.Monad) to get a monad containing the
> infinite list of all states (i.e., a list of Matrices).
> 3) evalState(T) to extract the list
> 4) extract the nth state with (head (drop (n-1)))
>
> I like this approach. However, there seems to be a memory management
> issue: a Matrix itself should only be, I'm guessing, somewhere around
> 100KB. But instead I'm maxing out the 3GB of RAM on my old T60 laptop.
> Maybe I'm generating list elements (Matrices) a lot faster than memory
> management is releasing them...?
>
> --
> http://qlfiles.net
> To protect my privacy, please use PGP encryption. It's free and easy
> to use! My public key ID is 0x340EA95A (pgp.mit.edu).
>
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
_______________________________________________
Haskell-Cafe mailing list
To (un)subscribe, modify options or view archives go to:
http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
Only members subscribed via the mailman list are allowed to post.