追加、削除、ルックアップ、最大値の検索、および最大値の削除が可能な Haskell の BST が与えられました。データをリスト構造に変換する関数を作成する必要があります。
bstToList:: (BST k v) -> [String]
bstToList EmptyBST = ["hi"]
bstToList (BSTNode k v nl nr) = bstToList nl ++ bstToList nr
そこに EmptyBST = ["hi"] がある理由は、それが何を返しているかを確認するためでした。の入力が与えられたとき
bstToList (bstAdd 1 "Phil" (bstAdd 2 "Ip" EmptyBST))
["hi","hi","hi"] のリストを返します。なぜすべてが空のリストを返すのかはわかりません。bstToList 以外のすべての関数が正しく、適切に機能していると仮定します。どんな助けでも大歓迎です!