Ste*_*dor 3 string haskell line
我正试图从haskell中的文件中读取并处理我现在拥有的每一行
main = interact (unlines . (map calculate) . lines)
Run Code Online (Sandbox Code Playgroud)
这让我从输入中获取每一行并将其发送给计算
现在我想从文件中获取每一行并将其发送给计算
这是我试过的
main = do
text <- readFile "input.txt"
let linii = lines text
interact (unlines . (map calculate) . linii)
Run Code Online (Sandbox Code Playgroud)
请告诉我,这是怎么回事?
更新如下
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
Run Code Online (Sandbox Code Playgroud)
请记住,interact从stdin获取输入并将输出发送到stdout.由于您已经从文件中读取了输入,因此您不需要前者.你只需要做以后再做.您可以使用打印字符串putStrln.把这一切放在一起,改变
interact (unlines . (map calculate) . linii)
Run Code Online (Sandbox Code Playgroud)
至
putStrLn . unlines $ map calculate linii
Run Code Online (Sandbox Code Playgroud)