Я реализует функцию вставки BST, ниже мой код:реализации бинарной вставки дерева поиска в Haskell
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'. – user2407038