根据这段代码,我在 Haskell 中做了一个二叉树数据类型:
data Tree a = EmptyTree
| Node a
(Tree a) (Tree a) deriving (Show,Eq)
我还创建了一个在树中插入元素的函数:
treeinsert :: (Ord a) => a -> Tree a -> Tree a
treeinsert x EmptyTree = leaf x
treeinsert x (Node a left right)
| x == a = Node x left right
| x < a = Node a (treeinsert x left) right
| x > a = Node a left (treeinsert x right)
现在,为了进行测试,我使用了一个 Int 元素列表,如下所示:
ghci> let nums = [8,6,4,1,7,3,5]
ghci> let numsTree = foldr treeInsert EmptyTree nums
ghci> numsTree
Node 5 (Node 3 (Node 1 EmptyTree EmptyTree) (Node 4 EmptyTree EmptyTree)) (Node 7 (Node 6 EmptyTree EmptyTree) (Node 8 EmptyTree EmptyTree))
我的问题是当我检查 numsTree 的类型时:
:type numsTree
numsTree :: Tree Integer
为什么它不只是“树”的类型?
我有点困惑。(对不起我的语言)