2
私はSMLを初めて使い、ツリートラバーサルに関する練習をしています。 これは質問の設定です。標準MLバイナリツリートラバーサル
datatype 'a bTree = nil | bt of 'a bTree * 'a * 'a bTree;
私はバイナリツリーを受け入れ、inorder traversalでツリーのすべてのメンバーのリストを返す関数inorderを書く必要があります。
私はこの行を書いた:
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