2017-01-26 10 views
2

私はHaskellを初めて使い、IOはやや混乱します。私は読んで、テキストファイルに数値を追加し、それからテキストファイルに書きたいtxtファイルを持っています。ファイルから読み込んでHaskellのテキストファイルに数字を追加するには

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 

ありがとうございます。

答えて

3

あなたの '操作'は何を意味するのか分からないが、整数計算が必要だと私は推測する。文字列として操作することは難しくありません。

hoogleの場合、String -> Intの署名はreadです。あなたはGHCの十分最近のバージョンを使用している場合は

-- | 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 

、あなたは望ましいreadMaybeを使用することができます。

+0

ありがとうたくさんのjejea! – agarc

関連する問題