如何从文件中返回haskell中形成的列表?

时间:2015-02-14 21:14:56

标签: haskell file-io

我试图通过读取文件中的数字来创建BST。我能够读取文件并形成列表。但我似乎无法做任何像返回创建BST的事情。

以下是代码:

listfromfile = do
           let intList = []
           fhandle <- openFile "randNumbers.txt" ReadMode
           contents <- hGetContents fhandle
           let wordList = words contents
               intList = stringListToInt wordList
           print intList
           hClose fhandle
           foldl insertBST Nil intList

stringListToInt :: [String] -> [Int]
stringListToInt = map read

错误表示无法匹配预期类型。基本上我想要返回创建的bst。

1 个答案:

答案 0 :(得分:1)

试试这个:

listfromfile = do
           ...
           return (foldl insertBST Nil intList)

您还应该在定义中添加一些类型签名。 E.g。

listfromfile :: IO (MyBST Int)

并非严格要求,但这是一种非常常见的做法,因为它可以作为文档。