我對OCaml非常陌生,並且正在嘗試編寫一個接受字符串和int的函數。它打印出「Hello,」+傳入的字符串,然後返回1+的整數。我有這個到目前爲止,但它似乎並沒有工作:OCaml如何在打印字符串後返回一個值?
let random_func s n = print_string "Hello, "; print_string s;1+n;;
任何想法我做錯了什麼?
我對OCaml非常陌生,並且正在嘗試編寫一個接受字符串和int的函數。它打印出「Hello,」+傳入的字符串,然後返回1+的整數。我有這個到目前爲止,但它似乎並沒有工作:OCaml如何在打印字符串後返回一個值?
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
也許問題出在intepreting頂層的輸出?該函數的輸出後面緊跟着頂層輸出。
如果您在程序中(而不是在頂層)使用您的代碼,並且希望輸出立即可見(例如在獲取用戶輸入之前),您可能還需要刷新緩衝區:
let random_func s n =
print_string "Hello, ";
print_string s;
flush stdout;
1+n
;;
在任何情況下,這與您的函數返回int無關。