What does the Syntax error : operator expected mean in caml?

What does the Syntax error : operator expected mean in caml?

所以我正在编写我的代码来创建一个特定的循环,但是当 运行 它时我遇到了那个错误并且不明白为什么......有人可以解释我这里的问题是什么。

for k = 0 to 10 do
for i = 0 to 10 do (let a = ref 0 ; a := !a + k*i mod 17) done ;
!a ;
done ;;

这里是错误信息:

# for k = 0 to 10 do
Line 4, characters 57-58:
4 |  for i = 0 to 10 do (let a = ref 0 ; a := !a + k*i mod 17); done ;
                                                         ^
Error: Syntax error: operator expected.

当然这不是一条很有启发性的错误消息。但是,您的问题是您有 let 而没有加工 in。除了在模块的最外层,每个 let 必须由 in.

匹配

你可以把let a = ref 0 ;改成let a = ref 0 in,应该能再远一点。

这里还有一些其他问题,但我认为这是您的直接问题。