string - 在 Haskell 中解析输入文件文件

标签 string file haskell input

Haskell 中有没有什么快速的方法可以将这样的输入文件转换为相应的类型?例如,一个接受字符串并生成 Int 列表的函数?或者我是否需要使用 getLine 手动解析它并解析字符串?

10.
10.
[4, 3, 2, 1].
[(5,8,'~'), (6,4,'*'), (7,10,'~'), (8,2,'o')].
[4,0,9,4,7,5,7,4,6,4].
[4,10,0,6,6,5,6,5,6,2].

最佳答案

是的,read功能。

例如,一旦您使用readFile 读取文件,您就可以读取 每一行以将其转换为您想要的类型。不过,您必须先摆脱经期。例如:

main = do
    text <- readFile "test.txt"
    let cases = lines text
        -- to get rid of the periods at the end of each line
        strs = map init cases
        lastLine = read $ last strs
    print $ show (map (+5) lastLine)

这将获取您的示例文件并从最后一行读取 Int 列表,然后将 5 添加到整个列表并打印它。

如果每一行都是相同的类型,您可以对所有行进行映射读取以获取所有行。如果有不同的类型,就像在您的示例中一样,您必须放入一些逻辑来确定每一行的类型,然后调用适当的函数来处理该类型。

关于string - 在 Haskell 中解析输入文件文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17387400/

相关文章:

php - 检查字符串中是否有按字母顺序排列的字符

java - 如何将字符串转换为时区 : Android

java - java中分割字符串后如何重新排列?

c++ - 如果目录不存在则创建目录

Node.js 下载多个文件

json - 在Aeson中查看deriveJSON生成的代码

php - 使用 PHP 作为 "front end"的 Haskell Web 应用程序

java - 按字节操作交换字符串中的数字

c - 即使字符串以 null 结尾,程序也会输出奇怪的字符

haskell - 在 Haskell 中为状态传递风格编写辅助函数吗?