Ocaml 语法很奇怪

Ocaml syntax quite weird

我在 Ocaml 中有这个程序,它从键盘读取一行和 returns 一个 int :

let get_int ()  =
print_string "Insert a number\n" ;
let input =  read_line() in
let return__ = int_of_string( input )
;;

print_string "I'll print what you write : ";
print_int ( get_int() );
print_string "\n"

问题是第 5 行的语法错误,编译器说“;;”。

我知道已经存在执行此操作的函数,但我这样做是为了学习。

我阅读了官方 Ocaml 文档,但我仍然不明白语法。 有人可以向我解释一下吗?

您的 get_int-绑定必须以表达式结尾。你可以去掉最后的 let-binding 并直接 return int:

let get_int () =
  print_string "Insert a number\n";
  let input = read_line () in
  int_of_string input;;