2012-05-23 62 views
0

我是haskell的初學者。我有一個.txt文件的格式如下:Haskell - 將文本文件導入列表類型

Company A, 100, 1000 

我需要每一行導入到一個類型的列表:

type GerCred = [(String, Int, Int)] 

我該怎麼辦呢?

更新

這是我到目前爲止已經試過:

type GerCred = [(String,Int,Int)] 
type GerCarb = [(String,Int)] 

readGerCredList :: File -> IO GerCred 
readGerCredList fname = do contents <- readFile fname return(read contents) 
+0

我更新了我原來的帖子,到目前爲止,thx – user1413410

+0

你應該檢查'單詞','線條'和'讀''。 –

+0

您可能會考慮像'木薯' – singpolyma

回答

3

下把問題分解成位。

首先,弄清楚如何將文件讀入一個大的字符串(提示,尋找一些返回「IO字符串」)

然後弄清楚如何採取字符串,並將其分割成線(提示:線)。

然後弄清楚如何把每行並將其分解到字段(提示:跨度,stripPrefix)

然後弄清楚如何每個字段轉換成你需要(提示:讀)的類型。

然後弄清楚如何把它放在一起(提示:地圖)

不要忘記,一個字符串就是一個[字符]。

Paul。

+0

這樣的CSV庫,並且讓我補充一點:Paul將問題分解爲5位;你不必按順序處理它們。我建議從#3開始,「把每條線分成幾個字段」。你可以做一個臨時的定義:

 t = "Company A, 100, 1000" type GerCred = [(String, Int, Int)] f :: String -> GerCred f = undefined -- replace this with your version