我是OCaml的新手,我正在尝试编写一个带字符串和int的函数。它打印出“Hello”,+传入的字符串然后返回1+ int。到目前为止我有这个,但它似乎没有工作:
let random_func s n = print_string "Hello, "; print_string s;1+n;;
任何想法我做错了什么?
答案 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的事实无关。