Der richtige Weg, eine Datenstruktur in OCaml zu verwenden

Ok, ich habe einen geschriebenbinary search tree in 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

Ich denke, der obige Code hat keine Probleme.

Wenn ich es benutze, schreibe ich

let root = insert 4 Leaf

let root = insert 5 root

...

Ist das der richtige Weg zuuse/insert zum Baum?

Ich denke, ich sollte die Wurzel nicht deklarieren und jedes Mal, wenn ich den Wert der variablen Wurzel wieder ändere, richtig?

Wenn ja, wie kann ich immer eine Wurzel behalten und jederzeit einen Wert in den Baum einfügen?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage