因此,這裏是我的問題。 我需要編寫一個函數,它將在樹中添加元素,它是一棵二叉樹,因此它必須組織良好。問題在於如何定義我的樹。 我有這樣的樹:在Ocaml的'樹中添加元素
type 'a tree = {
mutable cont:'a;
mutable left:'a bin_tree;
mutable right:'a bin_tree
}
and 'a bin_tree =
Empty
|Node of 'a bin_tree;;
所以,當我寫的功能,此樹添加元素它說,該樹的類型爲「一棵樹,我使用的功能」一bin_tree。
我嘗試了很多不同的方式來編寫該函數,我得到了同樣的錯誤。 我用最後的功能是:
let rec dodajVDrevo x = function
Empty -> Node{cont=x; left=Empty; right=Empty}
|Node{cont; left; right} -> if x < cont then Node{cont; left= dodajVDrevo x left; right}
else if x > cont then Node{cont; left; right = dodajVDrevo x right}
else Node{cont; left; right};;
請幫幫我,給了一些線索。
謝謝!
爲什麼你將left,right和cont定義爲mutable?你的add函數(dodajVDrevo)已經是純粹的了。 因爲它看起來像功課,我認爲你的鍛鍊感覺得到功能性編程風格的熟悉;不會變髒的c-like ocaml代碼。 – rafix
這是一個重複的:http://stackoverflow.com/questions/16507273/ocaml-tree-simple-functions – Thomash