gpt4 book ai didi

haskell - 在 readFile 后使用行

转载 作者:行者123 更新时间:2023-12-01 06:55:19 25 4
gpt4 key购买 nike

我正在尝试在 Haskell 中进行一些编程。我正在尝试读取一个文件,然后使用 line 函数将文件中的每一行放在一个列表中。这是部分代码:

file = "muh.rtr"
readTrack :: String -> Track
readTrack file =
do let defFile = readFile file
let fileLines = lines defFile

但是,我不断收到此错误:
Parser.hs:22:39:
Couldn't match expected type `String' with actual type `IO String'
In the first argument of `lines', namely `defFile'
In the expression: lines defFile
In an equation for `fileLines': fileLines = lines defFile

我已经在互联网上搜索了几个小时,希望能在某处找到一些答案,但到目前为止我还没有那么幸运。

最佳答案

你可能想要这样的东西:

readTrack :: String -> IO Track
readTrack file = do defFile <- readFile file
let fileLines = lines defFile
-- etc....

...或类似的东西:
readTrack :: String -> IO Track
readTrack file = do fileLines <- liftM lines (readFile file)
-- etc....

但是你真正应该做的是停下来,去找诸如 Learn You a Haskell之类的语言介绍。 ,并花一些时间阅读它。

将完全由非常简单的错误组成的代码输入 GHC,然后在 Stack Overflow 上发布错误消息并不是一种好的学习方式。

关于haskell - 在 readFile 后使用行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12590265/

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