【发布时间】:2014-01-18 08:49:49
【问题描述】:
我正在实现一个 BST 的插入功能,下面是我的代码:
data Tree a = Empty | Branch a (Tree a) (Tree a)
deriving (Show, Eq)
tinsert :: Tree a -> a -> Tree a
tinsert Empty a = Branch a Empty Empty
tinsert (Branch a left right) b
| b == a = Branch a left right
| b < a = Branch a (tinsert left b) right
| b > a = Branch a left (tinsert right b)
当我在ghci中加载这个函数时,它给了我很多错误,这似乎与比较部分有关。我看不出有什么问题。我是Haskell的新手,有人可以帮忙吗?非常感谢。
【问题讨论】:
-
请添加您收到的错误消息的详细信息以及您尝试解决的问题。
-
由于您要比较树中的对象,它们必须是
Ord类型类的成员。<的类型是Ord a => a -> a -> Bool。您的函数的正确类型是Ord a => Tree a -> a -> Tree a。
标签: haskell insert binary-search-tree