我正在嘗試製作一個打印二叉樹的函數。我二叉樹的數據類型如下:使用ML中的單位(SML/NJ)
datatype 'a BT = empty | bTree of 'a * 'a BT * 'a BT;
我也提出,打印整數,我將使用該節點的功能:
fun printInt n = print (Int.toString n);
正如你可以看到,BT數據類型有3個節點('a',BT,'BT),我已經開始製作displayTree函數,但是找不到打印出printInt函數返回的單元類型的方法。我相信還有其他方法可以做到這一點,但在這種情況下,我將如何返回三個連接的單元類型。這是我到目前爲止(我知道@是不正確的)。
fun displayTree T =
let
val bTree (root, left, right) = T;
in
(printInt root)@ (displayTree left) @ (displayTree right)
end;
我不擔心樹的行格式化。我只是不確定如何追加我的(printInt根)到遞歸調用。
編輯:
我想displayTree功能是多態
我忘了提及我的'displayTree'函數是多態的。我只是在這個例子中顯示了一種類型。字符串連接是'^','@'是列表。 – user2803198