Правильный способ использования структуры данных в OCaml
Хорошо, я написалbinary search tree
в OCaml.
type 'a bstree =
|Node of 'a * 'a bstree * 'a bstree
|Leaf
let rec insert x = function
|Leaf -> Node (x, Leaf, Leaf)
|Node (y, left, right) as node ->
if x < y then
Node (y, insert x left, right)
else if x > y then
Node (y, left, insert x right)
else
node
Я думаю, у приведенного выше кода нет проблем.
При его использовании пишу
let root = insert 4 Leaf
let root = insert 5 root
...
Это правильный способuse/insert
к дереву?
Я имею в виду, я не должен объявлять корень, и каждый раз, когда я снова меняю значение переменной root, верно?
Если так, как я могу всегда сохранять корень и в любое время вставить значение в дерево?