module Main(main) where
import IO
-import Monad ( accumulate )
+import Monad ( sequence )
testPosns :: Handle -> BufferMode -> IO ()
testPosns hdl bmo = do
putStrLn ls
-- go to the end
hSeek hdl SeekFromEnd 0
- ls <- accumulate (map (\ p -> hSetPosn p >> hGetChar hdl) ps)
+ ls <- sequence (map (\ p -> hSetPosn p >> hGetChar hdl) ps)
putStr "First ten chars: "
putStrLn ls
-- position ourselves in the middle.
sz <- hFileSize hdl
hSeek hdl AbsoluteSeek (sz `div` 2)
- ls <- accumulate (map (\ p -> hSetPosn p >> hGetChar hdl) ps)
+ ls <- sequence (map (\ p -> hSetPosn p >> hGetChar hdl) ps)
putStr "First ten chars: "
putStrLn ls
hGetChars :: Int -> Handle -> IO String
-hGetChars n h = accumulate (replicate n (hGetChar h))
+hGetChars n h = sequence (replicate n (hGetChar h))
getFilePosns :: Int -> Handle -> IO [HandlePosn]
getFilePosns 0 h = return []
Testing positioning with buffer mode set to: NoBuffering
-First ten chars: --!!! file
-First ten chars: --!!! file
-First ten chars: --!!! file
+First ten chars: -- !!! fil
+First ten chars: -- !!! fil
+First ten chars: -- !!! fil
Testing positioning with buffer mode set to: LineBuffering
-First ten chars: --!!! file
-First ten chars: --!!! file
-First ten chars: --!!! file
+First ten chars: -- !!! fil
+First ten chars: -- !!! fil
+First ten chars: -- !!! fil
Testing positioning with buffer mode set to: BlockBuffering Nothing
-First ten chars: --!!! file
-First ten chars: --!!! file
-First ten chars: --!!! file
+First ten chars: -- !!! fil
+First ten chars: -- !!! fil
+First ten chars: -- !!! fil
Testing positioning with buffer mode set to: BlockBuffering (Just 511)
-First ten chars: --!!! file
-First ten chars: --!!! file
-First ten chars: --!!! file
+First ten chars: -- !!! fil
+First ten chars: -- !!! fil
+First ten chars: -- !!! fil
Testing positioning with buffer mode set to: BlockBuffering (Just 3)
-First ten chars: --!!! file
-First ten chars: --!!! file
-First ten chars: --!!! file
+First ten chars: -- !!! fil
+First ten chars: -- !!! fil
+First ten chars: -- !!! fil
Testing positioning with buffer mode set to: BlockBuffering (Just 11)
-First ten chars: --!!! file
-First ten chars: --!!! file
-First ten chars: --!!! file
+First ten chars: -- !!! fil
+First ten chars: -- !!! fil
+First ten chars: -- !!! fil