gpt4 book ai didi

Haskell IO 字符串 -> 列表

转载 作者:行者123 更新时间:2023-12-02 12:15:32 25 4
gpt4 key购买 nike

大家好,我需要一些帮助,如何使用 sum 内置函数对文件中的列表求和?

示例:text.txt 包含 [1,2,3,4]

我想从文件中获取此列表,并将这些数字与内置的 sum 相加。可能吗?

谢谢!

最佳答案

因此,您将无法实际获取值 ::[Int],因为那是不安全的。但我们可以让您进入 IO [Int],然后通过 >>= 将其传递到 print:

main = (sum . read) `fmap` readFile "myFile" >>= print

如果您使用Control.Applicative,您可以使其变得更漂亮:

main = sum . read <$> readFile "myFile" >>= print

瞧!正如您所看到的,这种方式比使用 do 表示法更加简洁。 do-表示法对于摆脱嵌套 lambda 非常有用,但在很多情况下,它确实没有必要。

编辑: @augustss 建议以下更好的替代方案:

main = print . sum . read =<< readFile "myFile"

这太棒了,因为它更简单,并且不依赖于 Control.Applicative;更重要的是,正如@hammar指出的那样,它不必“从内到外”地阅读。

关于Haskell IO 字符串 -> 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5970916/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com