如何在Haskell中读取文件并在文本文件中添加数字

如何在Haskell中读取文件并在文本文件中添加数字,haskell,Haskell,我是Haskell的新手,IO仍然有点困惑。我有一个txt文件,我想读取,在文本文件中添加数字,然后将其写入文本文件。该文件如下所示: 2 3 这些数字由一个新行字符分隔。我知道如何读取文件内容,然后将其写入另一个文件,但我不知道如何操作它,或者是否必须将信息转换为Int module Main where import System.Environment -- | this fuction read first line in a file and write out to src f

我是Haskell的新手,IO仍然有点困惑。我有一个txt文件,我想读取,在文本文件中添加数字,然后将其写入文本文件。该文件如下所示:

2
3
这些数字由一个新行字符分隔。我知道如何读取文件内容,然后将其写入另一个文件,但我不知道如何操作它,或者是否必须将信息转换为Int

module Main where

import System.Environment

-- | this fuction read first line in a file and write out to src file
-- src "src.txt", des "des.txt"
copyFirstLine :: FilePath -- ^ path to input file
              -> FilePath -- ^ path to output file
              -> IO ()
copyFirstLine src dst = do
contect <- readFile src 
let (fst :rest) = (lines contect)
writeFile dst fst

main = do
[src,dst] <- getArgs 
copyFirstLine src dst
modulemain其中
导入系统。环境
--|此功能读取文件的第一行并写入src文件
--src“src.txt”,des“des.txt”
copyFirstLine::文件路径--^输入文件的路径
->文件路径--^输出文件的路径
->IO()
copyFirstLine src dst=do

contect我不确定你的“操纵”是什么意思,但我假设你需要整数计算。作为字符串进行操作并不困难

如果您输入签名
String->Int
,您可以找到
read

-- | this fuction read first line in a file and write out +1 result
--   to src file src "src.txt", des "des.txt"
eachPlusOne :: FilePath -- ^ path to input file
            -> FilePath -- ^ path to output file
            -> IO ()
eachPlusOne src dst = do
  contect <- readFile src
  let lns = lines contect :: [String]
      ints = map ((1+) . read) lns :: [Int]
      outs = unlines . map show $ ints :: String
  writeFile dst outs
——|此函数读取文件的第一行并写出+1结果
--到src文件src“src.txt”,des“des.txt”
eachPlusOne::文件路径--^输入文件的路径
->文件路径--^输出文件的路径
->IO()
eachPlusOne src dst=do
对抗