У меня есть программа, которая принимает текстовый файл со значениями, например:
20 30
23 5
200 3
И я преобразовываю его в список и добавляю каждую строку для создания промежуточной суммы, а затем сумму.
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
Как бы я изменил этот код, чтобы получить текстовый файл с разными номерами, например:
10 9 29 40
1 34 2
1 2 55 89
Создайте список промежуточных итогов каждой строки, а затем итоги.