Bayley, Alistair ha scritto:
From: haskell-cafe-boun...@haskell.org [mailto:haskell-cafe-boun...@haskell.org] On Behalf Of Manlio Perillo
Sent: 02 March 2009 11:01

Eugene Kirpichov ha scritto:
I'm not considering the lazy IO approach, as it doesn't involve any
form of control over resources.
This is not always true.
I'm using lazy IO, still having full control over the resources.

parse path = withFile path ReadMode parse'
     where
       parse' :: Handle -> IO (UArr Xxx)
       parse' handle = do
         contents <- L.hGetContents handle
         let v = toU $ xxx $ L.lines contents
         rnf v `seq` return v

All the file is consumed, before the result is returned.


This only works if the entire file can reasonably fit into memory.

It's not the entire file, but only the parsed data structure.

If you want to process something really big, then you need some sort of streaming approach,

Yes, this is a more general solution.

> [...]


Manlio Perillo
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to