私は現在、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 が文字列ではなく、リストに挿入できる適切な文字列を取得するために処理する方法がわからない IO 文字列であるためです。これをどのように解決できるか、または問題が正確に何であるかはわかりませんが、ファイル内のすべての行を適切にリストに入れる方法を知っている人がいれば、感謝します。
前もって感謝します!