我正在尝试学习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
但是,当我将代码放在一个如下所示的文件中时:
let x = 1
assert(x > 2)
我收到以下错误:
Zameers-MacBook-Air:Q4 zmanji$ ocaml test.ml
File "test.ml", line 2, characters 0-6:
Error: Syntax error
我做错了什么?
答案 0 :(得分:11)
如果您将;;
放入文件中,它将起作用。没有它,它在语法上没有意义。 <{1}}后跟关键字1
的表达方式没有意义。
我并不特别喜欢在实际代码中使用assert
(不是在顶层,即解释器)。如果你也想避免它,你可以写
;;