1

2 .txt ファイルから 2 func (減算と合計) を同時に実行するために、1 回だけ入力して l を取得するにはどうすればよいですか? 高次関数は使用できますか?よろしくお願いします。

transfer :: IO()
transfer = do

    k <- readFile "balance1.txt"
    b <- readFile "balance2.txt" --------read the second file------
    putStrLn "The amount that need to transfer"
    l <- getLine
    let n = read l::Int
    let a = read k::Int
    let c = read b::Int
    if ( n < a ) 
        then do
        let o = a - n
        let d = show o
            let e = n + c
        putStrLn "Your new balance is"
        putStrLn(d)
        writeFile "balance1.txt" d -----------modify 1st file--------
        writeFile "balance2.txt" e -----------modify 2nd file--------
        else do 
        putStrLn "Amount is not valid"
4

1 に答える 1

1

使用mapM:

transfer = do
    [b1, b2] <- mapM readFile ["balance1.txt", "balance2.txt"]
    -- ...

これは 2 つのテキスト ファイルを順番に読み取るだけであることに注意してください。とにかく、ここではおそらく並行性は必要ありません。

于 2013-10-25T15:23:57.063 に答える