В настоящее время я работаю над проектом с Haskell, и у меня возникли проблемы. Я должен читать и вставлять в список каждую строку в файле "dictionary.txt", но я не могу этого сделать. У меня есть этот код:
main = do
let list = []
loadNums "dictionary.txt" list
loadNums location list = do
inh <- openFile location ReadMode
mainloop inh list
hClose inh
mainloop inh list = do
ineof <- hIsEOF inh
if ineof
then return ()
else do
inpStr <- hGetLine inh
inpStr:list
mainloop inh list
Предполагается получить каждую строку (я знаю, что она получает каждую строку, так как замена "inpStr: list" на "putStrLn inpStr" работает корректно, отображает все строки) и вставляет ее в список, но я получаю следующая ошибка:
Couldn't match expected type `IO' against inferred type `[]'
Вероятно, потому что hGetLine не является строкой, а строкой ввода-вывода, о которой я понятия не имею, как обращаться, чтобы получить правильную строку, которую я могу вставить в свой список. Я понятия не имею, как это можно решить или что проблема в точности, но если кто-нибудь знает, как правильно получить каждую строку в файле в списке, я был бы признателен.
Спасибо заранее!