je le type de données suivantes (s'il vous plaît ne pas tenir compte du fait que cela pourrait être beaucoup plus simples)Comment modéliser les enregistrements de correspondance dans OCaml?
type tKey = Key of int;;
type tBST = Null | Pos of node ref
and node = {mutable key : tKey;
mutable left : tBST;
mutable right : tBST};;
J'ai l'erreur suivante avec cette fonction qui ressemble à mon pattern matching est pas juste
let rec string_of_tree = function
Null -> "()"
| Pos (ref {key; left = Null; right = Null}) -> Printf.sprintf "(%s)" (string_of_root (root tree))
| Pos (ref {key; left; right}) -> Printf.sprintf "(%s %s %s)"
(string_of_root (root tree))
(string_of_tree (leftLeaf tree))
(string_of_tree (rightLeaf tree));;
Error: Syntax error: ')' expected
Error: This '(' might be unmatched
erreur fait référence à la parenthèse suivante: (ref {key; (...)})
vous devriez probablement diviser votre expression de match à deux, de sorte que le premier ne traite que le wih 'null' et les balises 'Pos', et la seconde fonctionne sur la valeur * référencée * dans le cas' Pos', plutôt que de faire correspondre la totalité de 'ref'. – didierc