Haskell 级别:新手
目标:找到表示为列表的树的元素的根
输入(树节点)(数组中的位置表示节点号):[0,1,9,4,9,6,6,7,8,9]
调用的函数:getRoot 3
预期产出:9
代码:
li = [0,1,9,4,9,6,6,7,8,9]
getRoot::Integer->Integer
getRoot n | li!!n /= n = getRoot li!!n
getRoot n | otherwise = li!!n
错误信息:
错误文件:.\test2.hs:111 - 应用程序中的类型错误 *** 表情:li!!n *** 期限:n *** 类型:整数 *** 不匹配:Int
编译器:WinHugs
尝试了“整数”和“整数”的各种组合来声明函数的类型。似乎数组访问返回一个 Integer 但随后与失败的 Int 进行比较。不知道为什么它不将 Int 转换为 Integers。
或者是其他的东西?
在互联网、教程和 stackoverflow 上搜索。