如何在OCaml中使用assert?

Zam*_*nji 6 ocaml assert

我正在尝试学习OCaml,我在使用断言语句时遇到了麻烦.在翻译中我可以使用它:

Zameers-MacBook-Air:~ zmanji$ ocaml
        OCaml version 4.01.0

# let x = 1;;
val x : int = 1
# assert(x > 2);;
Exception: Assert_failure ("//toplevel//", 1, 0).
# ^D
Run Code Online (Sandbox Code Playgroud)

但是,当我将代码放在一个如下所示的文件中时:

let x = 1
assert(x > 2)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Zameers-MacBook-Air:Q4 zmanji$ ocaml test.ml
File "test.ml", line 2, characters 0-6:
Error: Syntax error
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Jef*_*eld 12

如果你把;;它放在文件中它将工作.没有它,它在语法上没有意义.表达式1后跟关键字assert没有意义.

我并不特别喜欢;;在实际代码中使用(不是在顶层,即解释器).如果你也想避免它,你可以写

let x = 1
let () = assert (x > 2)
Run Code Online (Sandbox Code Playgroud)