OCaml基于用户文本输入的简单界面

时间:2014-05-27 17:04:37

标签: user-interface input interface ocaml

我正在尝试为二进制搜索树项目创建一个非常简单的用户界面。

我已经为BST完成了所有必要的功能,但我的问题是我无法掌握如何在程序中引用树变量,以便我可以更新它并通过每个程序调用

let rec interface endCondition tree =
     let option = read_int () 
     in 
       if option = endCondition then 
         let () = print_string "Thank you for using the program!" in
         let () = print_newline ()
         in print_newline ()
       else 
         let () = 
           if option = 1 then 
             let value = read_int  () 

             (* line I'm having problems with *)
             in let tree = insert tree value

             in let () = Printf.printf "Inserted Node: %d" value 
             in print_newline () 
           else if option = 2 then 
             let () = print_string "Search Node:"
             (* search code here *)
             in print_newline () 
           else 
             let () = print_string "Lower"
             in print_newline ()
         in interface endCondition tree;;

每当我使用let函数时,它都会创建一个新变量。如何使用作为参数传递的树?

非常感谢!

1 个答案:

答案 0 :(得分:2)

你需要将新树传递得更远,这样你最终可以得到它,如下所示:

else
    let tree' =
        if option = 1 then let ... in insert tree value
        else if option = 2 then let ... in tree
        else let .... in tree
     in interface endCondition tree'