我有一個程序,它接受一個文本文件,例如值:哈斯克爾文件中讀取並添加數字
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
創建各行的分類彙總列表,然後總。
你'名單= []'和'列表2 = []'語句是不必要的。這些不是可變變量(就像其他語言一樣),所以你不會完成像初始化那樣的任何事情,就像你想象的那樣。 –