我是SML的新手并且正在进行关于树遍历的练习.这是问题的设定.
datatype 'a bTree = nil | bt of 'a bTree * 'a * 'a bTree;
Run Code Online (Sandbox Code Playgroud)
我需要编写一个函数inorder,它接受一个二叉树并在inorder遍历中返回树的所有成员的列表.
我写了这一行:
fun inorder(nil) = nil
| inorder(bt(left,key,right)) = inorder(left) @ [key] @ inorder(right);
Run Code Online (Sandbox Code Playgroud)
但得到一些错误,不知道如何解决:
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 * _ …Run Code Online (Sandbox Code Playgroud)