On 6/22/07, Duncan Coutts <[EMAIL PROTECTED]> wrote:
You might find that lazy IO is helpful in this case. The primitive that
implements lazy IO is unsafeInterleaveIO :: IO a -> IO a

Personally, unsafeInterleaveIO is so horribly evil, that even just
having typed the name, I'll have to put the keyboard through the
dishwasher (see http://www.coudal.com/keywasher.php). Also, I need to
support concurrent querying and updates, and trying to manage the
locking is quite hard enough as it is, without trying to keep track of
which postings vectors have closures pointing to them!

Note that using a Map will probably not help since it needs to read all
the keys to be able to construct it so that'd pull in all the data from
disk.

Well, in the case I'm dealing with, the map can contain the current
key from each postings vector, and the closure for reading the
remainder of the vector. E.g. Map Key ([IO (Maybe Key)]).

T.
--
Dr Thomas Conway
[EMAIL PROTECTED]

Silence is the perfectest herald of joy:
I were but little happy, if I could say how much.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to