Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

crislanio_macedo

IO em haskell ler numero de linhas e palavras de um arquivo

Mensagens Recomendadas

crislanio_macedo

Olá a todos, estou a fazer um programa bem simples onde tenho que listar o número de palavras e linhas de um arquivo dado como entrada.

Seque o código abaixo para verificaçaõ.

module Main where
-- ghc teste.hs -o teste
-- cat arquivo.txt | ./teste

main = do
linhas <- interact (show.length.lines)
palavras <- interact (show.length.words)
putStrLn $ "Numero de linhas: " ++ show linhas ++ " "
putStrLn $ "Numero de palavras: " ++ show palavras ++ " "

contudo quando execulto:

ghc teste.hs -o teste

cat arquivo.txt | ./teste

acontece o sequinte:

$ cat arquivo.txt | ./teste
2teste: : hGetContents: illegal operation (handle is closed)

Me ajudem, nesse assunto de IO, pois ainda estou a ter sérias dificuldades em alguns aspectos.

http://www.crislaniomacedo.zz.vc/

Editado por crislanio_macedo

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pdfrod

O interact consome todo o input, portanto não podes usar duas vezes. À segunda utilização dá erro pois já não há mais input para consumir.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
crislanio_macedo

O interact consome todo o input, portanto não podes usar duas vezes. À segunda utilização dá erro pois já não há mais input para consumir.

entao como faria para que mostrasse o total de linhas e palavras ? Ou seja como faria para que o interact mostrasse isso

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.