我目前正在从具有随机大小的元组列表的输入文件中读取,我试图将传入的数据作为列表获取,但是每当我尝试将其解析为除了字符串之外的其他任何内容我都会收到错误消息。输入文件如下所示:
[(2, 2), (2, 3), (3, 2), (3, 3)]
或
[(4, 2), (5, 2), (6, 2)]
我可以按如下方式处理输入:
handle <- openFile "test.txt" ReadMode
coord <- hGetLine handle
let alive = coord
print alive
然而,这会产生一个简单的字符串。
任何帮助将不胜感激!
答案 0 :(得分:1)
正如dsemi指出的那样,我需要使用read coord :: [(Int, Int)]
。谢谢你的帮助
答案 1 :(得分:0)
这样的事情很好:
import Control.Applicative ((<$>))
import System.IO
main :: IO ()
main = do
handle <- openFile "test.txt" ReadMode
cords <- map read <$> lines <$> hGetContents handle :: IO [(Int, Int)]
putStrLn $ show cords
return ()