Sumrio a
1 Introduo ca 2 Funes bsicas I/O co a 2.1 getChar e putChar . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Operador do . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 getLine, putStr e putStrLn . . . . . . . . . . . . . . . . . . . . 3 Tratando arquivos 3.1 readFile e writeFile . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Import, openFile, hGetLine . . . . . . . . . . . . . . . . . . . 4 Consideraes Finais co 3 4 4 4 5 7 7 8 9
Introduo ca
Haskell, como outras linguagens de programaao, possui funoes que se comuc c nicam com o sistema operacional para realizar entrada e sa de dados. Esda tas operaes trabalham com valores do tipo (IO t), e durante a sua avaliao co ca requisitam operaoes de IO ao sistema operacional. O sistema de I / O em c Haskell puramente funcional, mas tem todo o poder expressivo encontrae dos em linguagens de programao convencionais. Aoes t ca c picas incluem a leitura, gravao de arquivos, leitura de entrada. ca
2
2.1
getChar :: IO Char A funo getChar serve para capturar um char. ca putChar :: Char IO() A funo putChar serve para imprimir um char na tela. ca
2.2
Operador do
Aoes so sequenciadas pelo operador do. c a Exemplo: main :: IO() main = do c getChar putChar c Em primeiro lugar, atribu ` varivel c o caracter escrito. Em seguida e do a a impresso o seu contedo na tela atravs da funao putChar.Veja abaixo: e u e c
2.3
getLine:: IO String A funo getLine serve para capturar o que for escrito em uma linha. ca putStr:: String IO () A funo putStr serve para imprimir uma string. ca putStrLn:: String IO () A funo putStrLn serve para imprimir uma string seguida de um enter. ca Exemplo 1: main = do x getLine putStr x Primeiramente, atribu a varivel x o que for escrito. Em segundo lugar, e do a impresso na tela a varivel x. e a Veja a gura abaixo:
Exemplo 2: main = do putStrLn Digite seu nome nome getLine putStr nome
Veja abaixo:
Segue abaixo o cdigo: o main = do putStrLn Digite a palavra tentativa getLine if tentativa == palavra then putStr Acertou! else putStr Errou! where palavra = PET 6
3
3.1
Tratando arquivos
readFile e writeFile
readFile:: FilePath IO String Sintaxe: varivel readFile endereo do arquivo a c A funo readFile serve para leitura de um arquivo. ca writeFile::FilePath String IO () Sintaxe: writeFile nome do arquivo(o que deseja inserir ) A funo writeFile serve para escrever em um arquivo. ca Exemplo: adiciona = do putStr (Escreva uma linha para adicionar ao arquivo Haskell.txt:) linha getLine arquivo readFile Haskell.txt writeFile Haskell.txt(arquivo ++ \n++ linha) putStr (Linha adicionada!)
Antes:
Depois:
Vale ressaltar que se o arquivo Haskell.txtno estiver na pasta, ele ser a a criado. Observe tambm que o \ninuencia na quebra de linha. e
3.2
openFile::FilePath IOMode IO Handle Sintaxe: openFile endereo do arquivoReadMode c A funo textit serve para abrir um arquivo de texto. ca Exemplo import IO main = do x openFile /Haskell.txtReadMode y hGetLine x putStr y
Como hGetLine e openFile no so denidas no mdulo prelude, necessrio a a o e a importar o mdulo IO, na qual tais funes pertencem. hGetLine idntica o co e e a getLine visto acima. Porm, trata-se de um arquivo. E de forma similar, e temos hGetChar, hPutChar, etc.
Consideraoes Finais c
Essa simples apostila introdutria. Portanto segue abaixo uma lista de e o sites que tratam do assunto com certo aprofundamento http://www.zvon.org/other/haskell/Outputglobal/index.html http://www.haskell.org/tutorial/io.html http://book.realworldhaskell.org/read/io.html Fora as inmeras apostilas que podem ser achadas na internet. Qualquer u dvida, entrem em contato com os monitores da disciplina. u