
John Goerzen writes:
But the block I/O in Haskell makes no sense to me (how do I allocate a Ptr type block thingy)?
With mallocArray. Block I/O is difficult, though.
You might want to write a function that copies the file _once_ and then just call that function several times.
If I load it into memory, yes. Otherwise, it seems not so easy.
Looking at your program:
main = disp 100
disp 0 = return () disp n = let copy x = do eof <- isEOF if eof then return () else do line <- getLine putStrLn line (copy 0) in do copy 0 hSeek stdin AbsoluteSeek 0 disp (n-1)
Just let the function _begin_ with the seek, copy the file, and return. Then call it 100 times. No recursion. Peter