我正在尝试从 haskell 中的文件中读取并处理每一行 我现在拥有的
main = interact (unlines . (map calculate) . lines)
这让我从输入中获取每一行并将其发送给计算
现在我想从文件中获取每一行并将其发送给计算
这是我试过的
main = do
text <- readFile "input.txt"
let linii = lines text
interact (unlines . (map calculate) . linii)
请告诉我它是如何正确的?
更新如下
calculate :: String -> String
calculate s=
case ret of
Left e -> "error: " ++(show e)
Right n -> "answer: " ++ (show n)
where
ret = parse parseInput "" s
main :: IO()
--main = interact (unlines . (map calculate) . lines)
main = do text <- readFile "input.txt"
let linii = lines
putStrLn . unlines $ map calculate linii
最佳答案
请记住,interact
从 stdin 获取输入并将输出发送到 stdout。由于您已经从文件中读取了输入,因此不需要前者。您只需要做后面的事情。您可以使用 putStrln
打印字符串。把这一切放在一起,改变
interact (unlines . (map calculate) . linii)
到
putStrLn . unlines $ map calculate linii
关于string - haskell 从文件中读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16843029/