我试图通过读取文件中的数字来创建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。
答案 0 :(得分:1)
试试这个:
listfromfile = do
...
return (foldl insertBST Nil intList)
您还应该在定义中添加一些类型签名。 E.g。
listfromfile :: IO (MyBST Int)
并非严格要求,但这是一种非常常见的做法,因为它可以作为文档。