【问题标题】:What is the Frege equivalent to Haskell "readFile"?与 Haskell“readFile”等价的 Frege 是什么?
【发布时间】:2013-09-30 03:29:20
【问题描述】:

在为真实世界的 Haskell 代码示例(第 2 章)准备 Frege 等价物时,我找不到对应的

:type readFile

最接近的匹配是什么?

【问题讨论】:

  • 2014 年 3 月 1 日更新:从最新版本开始,现在支持 readFile。但是,由于这会在一个巨大的字符串中读取整个数据,因此建议仅在小文件或您确实需要一次完整的文本时使用(而不是逐行)。

标签: haskell frege


【解决方案1】:

看来您将不得不使用openReader :: String -> IO BufferedReader 函数和getLines :: BufferedReader -> IO [String] 函数。然后你可以将字符串列表组合成一个字符串。

【讨论】:

    【解决方案2】:

    好的,我做了这个

    readFile :: String -> IO [String]
    readFile fileName = do
        file <- openReader fileName
        file.getLines
    

    (这不会很好地显示为评论,所以我将其作为答案)

    【讨论】:

    • 也许这应该是一个库函数,但是如果名称和Haskell中的一样,但类型不兼容,那就很混乱了。想起个好名字吗?
    • 嗯,例如 Groovy 在将完整文件作为文本读入内存时有一个 File.getText()。
    • 在 perl 中,这将是 slurp,这很好听而且听起来很有趣,但当然对于 ole perl 黑客来说只是直观的......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 1970-01-01
    • 1970-01-01
    • 2018-11-30
    • 1970-01-01
    • 2012-01-01
    • 2022-11-03
    相关资源
    最近更新 更多