В настоящее время я работаю над некоторыми алгоритмами для двоичных деревьев. Однако я столкнулся с проблемой, которую не могу решить. Я всегда получаю следующую ошибку:
ошибка: ошибка синтаксического анализа при вводе '|'
Хотя я понимаю, что это связано с интервалом, я думаю, что должен был сделать это правильно.
delTree a Leaf = error "No tree here!"
delTree a (Branch left w right)
| a < w = delTree a left
| a > w = delTree a right
| a == w
| ...
Я что-то упустил? Связано ли это с использованием выражения защиты дважды?
Изменить: это моя структура данных
data BinTree a = Leaf | Branch (BinTree a) a (BinTree a) deriving Show
С помощью delTree я пытаюсь удалить узел в двоичном дереве. Единственный способ, который я вижу, - это, конечно, поиск правильного значения и затем замена его левым или правым дочерним элементом (в зависимости от того, есть ли левый дочерний элемент). Если есть другой способ, то я открыт для совета!