data Tree = EmptyTree | Node Integer Tree Tree deriving (Show, Eq, Ord)
insertElement x EmptyTree = Node x EmptyTree EmptyTree -- BASE CASE
insertElement x (Node a left right) = if x == a -- DO NOTHING
then (Node x left right)
else if x < a -- INSERT TO LEFT
then (Node a (insertElement x left) right)
else -- INSERT TO RIGHT
Node a left (insertElement x right)
inserter (x:list) = insertElement x (insertElement (inserter (list)) (EmptyTree))
I have got the above Haskell Code. The inserter
function is supposed to return a tree when we give a list to it. Everything other than inserter
works perfectly fine. When I try to :r this file, it gives me the error
Couldn't match type `Tree' with `Integer'
Expected type: [Integer] -> Integer
Actual type: [Integer] -> Tree
What should I change about the inserter
function?