OCaml打印字符串后如何返回一个值?

时间:2014-01-26 02:02:21

标签: function return ocaml

我是OCaml的新手,我正在尝试编写一个带字符串和int的函数。它打印出“Hello”,+传入的字符串然后返回1+ int。到目前为止我有这个,但它似乎没有工作:

let random_func s n = print_string "Hello, "; print_string s;1+n;;

任何想法我做错了什么?

2 个答案:

答案 0 :(得分:1)

您的代码完全适用于我:

# let random_func s n = print_string "Hello, "; print_string s;1+n;;
val random_func : string -> int -> int = <fun>
# random_func "yow" 4;;
Hello, yow- : int = 5

也许问题在于解决顶层的输出?该函数的输出后面紧跟着顶级输出。

答案 1 :(得分:0)

如果您在程序中使用代码(而不是在顶层),并且希望输出立即可见(例如在从用户获取某些输入之前),您可能还需要刷新缓冲区:

let random_func s n =
  print_string "Hello, ";
  print_string s;
  flush stdout;
  1+n
;;

在任何情况下,这与函数返回int的事实无关。