In the second case, if your numerical data is just a big array, why not
just mmap it? Unless you're running on a 32 bit machine, or have a
*seriously* large amount of data, that seems like the easiest option.
Although if you're talking about mutable data, that's a whole 'nother can
of worms... but that's true even if your data fits into memory.

You could look at Data.ByteString to get some idea as to how to wrap a pure
interface around a disk-backed chunk of read-only memory.  Or just read
about the ffi, it's not too hard to figure out.

David

On Mon, Aug 13, 2007 at 01:27:03PM -0700, Carter T Schonwald wrote:
> The main two use cases I have in mind are 
> 1) really really really big abstract syntax trees or proof trees (a la
> compilers or theorem provers)
> 2) random access to numerical data 
> 
> does that help clarify what i'm asking about? In each case, is there a
> standard way of dealing with this?
> in the case of (1) the sensible way seems to me to do some sort of zipper
> representation which loads adjacent nodes to some depth surrounding your
> current location in the tree, and in the case of (2) it seems like the
> sensible way would be load subsequences of the data into memory.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to