Я новичок в SML и делаю практику обхода дерева. Это настройка вопроса.Стандарт ML Двоичный траверс дерева
datatype 'a bTree = nil | bt of 'a bTree * 'a * 'a bTree;
Мне нужно написать функцию, которая принимает Симметричные бинарное дерево и возвращает список всех членов дерева в заказовМой обхода.
Я написал эту строку:
fun inorder(nil) = nil
| inorder(bt(left,key,right)) = inorder(left) @ [key] @ inorder(right);
Но получить некоторую ошибку и не знаю, как исправить:
Error: operator and operand don't agree [tycon mismatch]
operator domain: 'Z list * 'Z list
operand: 'Z list * 'Y bTree
in expression:
(key :: nil) @ inorder right
Error: operator and operand don't agree [tycon mismatch]
operator domain: 'Z list * 'Z list
operand: 'Y bTree * _
in expression:
inorder left @ (key :: nil) @ inorder right
Спасибо человеку. Теперь я понимаю, что случилось с моим кодом сейчас! – WilsonHoHK