2015-12-30 87 views
-1

我想寫一個PROGRAMM這會應用一些功能,在文本文件中的行後打印出來只有一個整數,所以到目前爲止,我有:總結Haskell的輸出線

main = do 
    c <- getLine 
    let plot = plots (split ',' (change c)) 
    print plot 
    main 

其中地塊,分割與變化是將輸入從字符串轉換爲int的函數,除去非整數字符並應用一些計算,問題是我的輸入文件有很多行,並且我只設法編寫一個程序,將這些函數分別應用於每行,打印每行的結果(我得到的輸出行數與輸入行數一樣多),但是我希望這個程序能夠總結每一行的結果並且只打印出那個數字,我應該在哪裏開始或者可能一些身體知道解決方案?我在Haskell是新的,所以請不要判斷:/

+2

請添加類型簽名並明確說明「總結結果」的含義。 – leftaroundabout

+2

*我只能設法編寫一個程序[...] *編輯你的問題並添加一個[最小的,完整的和可驗證的例子](http://stackoverflow.com/help/mcve),而不僅僅是一個片段。 – Jubobs

回答

1

假設您的轉換功能的多線投入工作,你也許可以用簡單地更換getContentsgetLine和消除main遞歸調用脫身。雖然如果您實際上想要讀取文件,但使用readFile可能比使用getContents更清晰,因爲後者通常用於從命令行讀取數據。

0

爲了擴大保羅所寫的內容,getContents就像getLine一樣,但是它可以爲您提供整個文件的單個字符串。然後,您可以使用lines獲取行列表。例如:

main :: IO() 
main = do 
    contents <- getContents 
    print (lines contents) 

如果給出的文件

Haskell 
is 
neat! 

將打印["Haskell","is","neat!"]。從這裏,你可以通過map你的行處理函數來獲取整數列表,最後是print (sum resultList)