【发布时间】:2018-06-28 22:56:35
【问题描述】:
好的,我是来自 Python 的 Haskell 社区的新手,这让我发疯了。
我有一个类似于以下内容的文本文件: “1.2 1.423 2.43 英寸。
我想读取这个文本文件并将其作为双精度列表存储在 list_var 中。所以 list_var = [1.2,1.423,2.43]。这个 list_var 将在程序中进一步使用。
我似乎没有找到关于如何做到这一点的答案,大多数答案都可以打印出 list_var,例如Haskell - Read a file containing numbers into a list 但我需要更进一步的 list_var!
我试过了:
get_coefficients :: String -> [Double]
get_coefficients file_1 = do
coefficients_fromfile <- readLines "test2.txt"
let coefficients = map readDouble coefficients_fromfile
return coefficients
这不起作用,readLines是
readLines :: FilePath -> IO [String]
readLines = fmap lines . readFile
而 readDouble 是
readDouble :: String -> Double
readDouble = read
提前致谢!
【问题讨论】:
-
您不能在非 IO 函数中进行 IO 操作。您应该在
main函数中执行readLines,并将结果传递给get_coefficients,这就是您链接的答案的作用。