私は、例えば値を持つテキストファイルを取るプログラムを持っている:Haskellのファイルの読み取りと番号の追加
20 30
23 5
200 3
そして、私はそれをリストに変換し、小計を作成するために、各ライン、次に合計を追加。
10 9 29 40
1 34 2
1 2 55 89
各行の小計のリストと、その後合計を作成します。私は、異なる数の元のテキストファイルに取るために、このコードを変更する方法を
import System.IO
import Control.Monad
f :: [String] -> [Int]
f = map read
subsum :: [Int] -> [Int]
subsum [] = []
subsum [x] = []
subsum (x:(y:xs)) = (x+y) : (subsum xs)
calc fromf = do
let list = []
let list2 = []
handle <- openFile fromf ReadMode
contents <- hGetContents handle
let singlewords = words contents
list = f singlewords
list2 = subsum list
result = sum list2
print list2
print result
hClose handle
。
あなた 'リスト= []'と 'LIST2 = []'ステートメントは不要です。これらは可変変数ではありません(他の言語の場合と同じように)、あなたは想像しているように、初期化のような何も達成していません。 –