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

Function OCaml打印字符串后如何返回值?,function,return,ocaml,Function,Return,Ocaml,我对OCaml非常陌生,正在尝试编写一个接受字符串和int的函数。它打印出“Hello”+传入的字符串,然后返回1+int。到目前为止,我有这个,但它似乎不起作用: let random_func s n = print_string "Hello, "; print_string s;1+n;; 你知道我做错了什么吗?你的代码对我的作用与你给出的完全一样: # let random_func s n = print_string "Hello, "; print_string s;1+n;;

我对OCaml非常陌生,正在尝试编写一个接受字符串和int的函数。它打印出“Hello”+传入的字符串,然后返回1+int。到目前为止,我有这个,但它似乎不起作用:

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

你知道我做错了什么吗?

你的代码对我的作用与你给出的完全一样:

# 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
#让random_func sn=print_字符串“Hello,”;打印字符串;1+n;;
val random_func:string->int->int=
#随机函数“yow”4;;
你好,yow-:int=5

也许问题在于解释顶层的输出?函数的输出紧接着顶级输出。

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

let random_func s n =
  print_string "Hello, ";
  print_string s;
  flush stdout;
  1+n
;;
在任何情况下,这与函数返回int无关