基本上我已經定義,其定義一個樹數據類型如下:插入值的有序樹在Haskell
data Tree a = Empty
| Leaf a
| Node (Tree a) a (Tree a)
deriving (Eq, Ord, Show)
現在我必須創建一個函數來插入值的有序樹(它不必排序樹,只需添加值)。這是我想出迄今:
insert :: a -> Tree a -> Tree a
insert x Empty = Leaf x
insert x (Leaf m) | m < x = Node (Leaf x) m Empty
| otherwise = Node Empty m (Leaf x)
insert x (Node l m r) | x > m = Node (Leaf l) m (insert x r)
| otherwise = Node (insert x l) m (Leaf r)
然而,當我運行此我得到以下錯誤信息:
無法比擬預期「A」型(剛性在'Leaf'的第一個參數中,即'l' 在第一個參數中,'l'在'Main' '節點',即 '(葉子L)' 在表達式的參數:節點(葉升)米(插入XR)
我認爲這件事情做的類型,但我看不到,我已經把任何類型的不應該存在。
「給一個男人一條魚,你喂他一天;教一個男人去釣魚,你給他一輩子的食物」。很好的答案! – yairchu