【发布时间】:2017-12-04 09:15:48
【问题描述】:
大家好,
我正在解析一个如下所示的文本文件:
114.474998474121 15.7440004348755 25.806999206543 -873 172 182 188
114.46199798584 15.7419996261597 25.8799991607666 -1396 180 192 205
希望它可以这样读:
[[114.475,15.744,25.807,-873.0,172.0,182.0,188.0],
[114.462,15.742,25.88,-1396.0,180.0,192.0,205.0]]
目前我的文本解析代码没有提供。这是我的代码:
main = do
text <- readFile "mytext.txt"
let
pcVal = map read (words text) :: [Float]
print pcVal
return ()
此代码将所有文本解析为单个列表,如下所示:
[114.475,15.744,25.807,-873.0,172.0,182.0,188.0,
114.462,15.742,25.88,-1396.0,180.0,192.0,205.0]
我找不到如何将整个单行(在文本文件中)作为一个列表,并将第二行作为另一个列表,直到文件末尾。感谢有人有这方面的经验。谢谢。
【问题讨论】:
-
我假设你是一个初学者 - 当你知道更多haskell时,给未来一个提示;重新审视这个练习并实现一个解析器,而不是仅仅拥有一个双值列表。
-
是的@epsilonhalbe,我是初学者,开始喜欢这种语言。我会听取你对未来的建议。谢谢!
标签: list haskell text-parsing