У меня есть тип данных
data KTree a = Empty | Leaf a | Node a [KTree a] deriving (Eq, Show)
Я хотел бы написать функцию, которая возвращает либо true, либо false, относительно того, содержится ли элемент в моем дереве.
ktreeContains :: Eq a => a -> (KTree a) -> Bool
ktreeContains _ Empty = False
ktreeContains y (Leaf x) = (x==y)
-- code for nodes goes here
Итак, я понимаю, что мне нужно выяснить, является ли сам узел элементом, а затем рекурсивно вызвать ktreeContains для дочерних узлов, но я не понимаю, как это сделать, потому что у каждого узла может быть много дочерних элементов.
Я думаю, что код, который у меня есть, правильный, но не стесняйтесь поправлять меня, если нет.
Любая помощь приветствуется, спасибо.