Hi. I wonder if there are any methods of walking through a very long list without a huge heap. It is good that a laziness makes creation of large stuctures delayed, but it seems that destruction of never again used beginning of a list is also delayed (probably because of other reason).
Consider the simple program: main = do putStrLn $ show $ hist_inc 100000 3 hist_inc n b = hist (0,b) $ take n $ repeat b hist bnds is = accumArray (+) 0 bnds [(i, 1) | i <- is, inRange bnds i] and it's output (compiled with GHC): $ ./hist_inc Stack space overflow: current size 1048576 bytes. Use `+RTS -Ksize' to increase it. I am using GHC 5.0, does it have any optimization to overcome it (`-O -fvia-C -O2-for-C' does not do this). It is obvious that the beginning of the list is no longer needed (does garbage collector now this?). If there is a way is it written somewhere in documentation? I feel it insane to have to have let say 256Mb of memory because I have 1 million measurements on a list. Currently I pipe the results to a C program, nice UN!X practice which I would like avoid. -- =*= Lukasz Pankowski =*= _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell