Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 如何使用Haskell读取文件?_File_Haskell_Functional Programming_System.io.file - Fatal编程技术网

File 如何使用Haskell读取文件?

File 如何使用Haskell读取文件?,file,haskell,functional-programming,system.io.file,File,Haskell,Functional Programming,System.io.file,我正试图从文件中读取。我想把文件中的每一行分割成它自己的字符串。我正在考虑使用lines命令来列出所有行的字符串。然后我计划使用words命令将每一行拆分成一个单词列表。然而,我对函数式编程/Haskell非常陌生,我不完全理解语法。那么,首先,如何从文件中读取每一行并存储它呢 我尝试了以下代码,但它没有编译 main :: IO () main = do contents <- readFile "input.txt" contents1 = lines contents m

我正试图从文件中读取。我想把文件中的每一行分割成它自己的字符串。我正在考虑使用lines命令来列出所有行的字符串。然后我计划使用words命令将每一行拆分成一个单词列表。然而,我对函数式编程/Haskell非常陌生,我不完全理解语法。那么,首先,如何从文件中读取每一行并存储它呢

我尝试了以下代码,但它没有编译

main :: IO ()
main = do
  contents <- readFile "input.txt" 
  contents1 = lines contents
main::IO()
main=do

内容它没有编译有两个原因。首先,
let
不存在,引用GHC:

Perhaps you need a 'let' in a 'do' block?
    e.g. 'let x = 5' instead of 'x = 5'
另一个是:

The last statement in a 'do' block must be an expression
  let contents1 = lines contents
修复这两个问题后,它将编译并运行:

main :: IO ()
main = do
  contents <- readFile "input.txt" 
  let contents1 = lines contents
  print contents1
main::IO()
main=do
目录