[Haskell-cafe] Is it safe to use unsafePerformIO here?
frodo at theshire.org
Thu Sep 17 16:20:55 EDT 2009
On Thu, Sep 17, 2009 at 10:01 PM, Daniel Fischer
<daniel.is.fischer at web.de> wrote:
> readBit fn = do
> txt <- readFile fn
> let (l,_:bdy) = span (/= '\n') txt
> return $ Bit (read l) bdy
> main = do
> args <- getArgs
> let n = case args of
> (a:_) -> read a
> _ -> 1000
> bl <- mapM readBit ["file1.txt","file2.txt"]
> mapM_ (putStrLn . show . index) $ sortBy (comparing index) bl
> mapM_ (putStrLn . take 20 . drop n . body) bl
Yes, it *seems* to work but... the files don't get closed (readFile is
unfinished until body is read) so I think I'm going to have problems
when the number of files to read is higher than the maximum number of
open handles a process can have.
That's a possibility I considered even if not directly using readFile.
More information about the Haskell-Cafe