Haskell Language
Потоковое IO
Поиск…
Потоковое IO
io-streams
- это библиотека, основанная на io-streams
которая фокусируется на абстракции Stream, но на IO. Он раскрывает два типа:
InputStream
: интеллектуальный дескриптор только для чтенияOutputStream
: интеллектуальный дескриптор только для записи
Мы можем создать поток с makeInputStream :: IO (Maybe a) -> IO (InputStream a)
. Чтение из потока выполняется с использованием read :: InputStream a -> IO (Maybe a)
, где Nothing
обозначает EOF:
import Control.Monad (forever) import qualified System.IO.Streams as S import System.Random (randomRIO) main :: IO () main = do is <- S.makeInputStream $ randomInt -- create an InputStream forever $ printStream =<< S.read is -- forever read from that stream return () randomInt :: IO (Maybe Int) randomInt = do r <- randomRIO (1, 100) return $ Just r printStream :: Maybe Int -> IO () printStream Nothing = print "Nada!" printStream (Just a) = putStrLn $ show a
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow