
Hello Everyone, I'm not quite sure if I'm posing this question correctly, but what facilities currently exist in haskell to nicely deal with datastructures that won't fit within a given machine's ram? And if there are no such facilities, what would it take to fix that? thanks -Carter

On Mon, Aug 13, 2007 at 12:29:25PM -0700, Carter T Schonwald wrote:
Hello Everyone,
I'm not quite sure if I'm posing this question correctly, but what facilities currently exist in haskell to nicely deal with datastructures that won't fit within a given machine's ram? And if there are no such facilities, what would it take to fix that?
You're asking correctly, and according to the Hackage list: http://hackage.haskell.org/packages/archive/pkg-list.html we have: * anydbm library and program: Interface for DBM-like database systems * BerkeleyDB library: Bindings for Berkeley DB v1.x * haskelldb library: SQL unwrapper for Haskell. * HDBC library * hsql library * PostgreSQL library: Thin wrapper over the C postgresql library We also have Data.Binary and Data.ByteString, but those are more useful for building data stores, than as data stores themselves. Stefan

Carter T Schonwald wrote:
Hello Everyone, I'm not quite sure if I'm posing this question correctly, but what facilities currently exist in haskell to nicely deal with datastructures that won't fit within a given machine's ram? And if there are no such facilities, what would it take to fix that?
If you just want to process a big chunk of data from one end to the other without loading it all into RAM at once... that's fairly easy. Haskell is a lazy language. By playing with functions such as getContents, you can automatically load the data as you access it. No tricky programming required. If you're asking for something more specific -- e.g., "how do I talk to a standard database like Oracle / MySql / et al.", there are a couple of libraries for that. (Unfortunately, no one standard one.) See Stefan's answer. I'd you'd like to be more specific about what you'd like to do...
participants (3)
-
Andrew Coppin
-
Carter T Schonwald
-
Stefan O'Rear