[Haskell-cafe] Re: Collections

Thomas Conway drtomc at gmail.com
Fri Jun 22 01:34:15 EDT 2007


On 6/22/07, Duncan Coutts <duncan.coutts at worc.ox.ac.uk> 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
drtomc at gmail.com

Silence is the perfectest herald of joy:
I were but little happy, if I could say how much.


More information about the Haskell-Cafe mailing list