[Haskell-cafe] Memory Management and Lists

Anatoly Yakovenko aeyakovenko at gmail.com
Sun Jul 10 18:23:11 UTC 2016


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 at 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 at 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20160710/8d581c0c/attachment.html>


More information about the Haskell-Cafe mailing list