gpt4 book ai didi

file - Haskell读取文件行

转载 作者:行者123 更新时间:2023-12-04 00:03:37 26 4
gpt4 key购买 nike

我想将整个文件读入一个字符串,然后使用函数lines获取字符串的行。我正在尝试使用这些代码行来做到这一点:

main = do
args <- getArgs
content <- readFile (args !! 0)
linesOfFiles <- lines content

但是我通过编译失败的广告得到以下错误:
Couldn't match expected type `IO t0' with actual type `[String]'
In the return type of a call of `lines'
In a stmt of a 'do' block: linesOfFiles <- lines content

我想通过绑定(bind) readFile的结果内容将是 String数据类型,为什么不是呢?

最佳答案

I thought by binding the result of readFile to content it will be a String DataType, why isn't it?



这是一个 String事实上,这不是编译器所提示的。让我们看一下代码:
main = do
args <- getArgs
content <- readFile (args !! 0)

现在 content根据需要,是一个普通的 String .然后 lines content[String] .但是你在下一行使用一元绑定(bind)
   linesOfFiles <- lines content

IO ()做 block 。所以编译器需要一个 IO something 类型的表达式。在 <- 的右侧,但它会找到 [String] .

由于计算 lines content不涉及任何 IO ,您应该将其结果与 let 绑定(bind)。绑定(bind)而不是一元绑定(bind),
   let linesOfFiles = lines content

是你需要的那条线。

关于file - Haskell读取文件行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11022163/

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