2014-01-26 85 views
1

我對OCaml非常陌生,並且正在嘗試編寫一個接受字符串和int的函數。它打印出「Hello,」+傳入的字符串,然後返回1+的整數。我有這個到目前爲止,但它似乎並沒有工作:OCaml如何在打印字符串後返回一個值?

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

任何想法我做錯了什麼?

回答

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 

也許問題出在intepreting頂層的輸出?該函數的輸出後面緊跟着頂層輸出。

0

如果您在程序中(而不是在頂層)使用您的代碼,並且希望輸出立即可見(例如在獲取用戶輸入之前),您可能還需要刷新緩衝區:

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

在任何情況下,這與您的函數返回int無關。