OCaml语法错误 让我们来讨论一下= 如果tinf tdec 然后失败(msg^“deveser do tipo”^tinf) 文件“semantico.ml”,第50行,字符0-3: 错误:语法错误

OCaml语法错误 让我们来讨论一下= 如果tinf tdec 然后失败(msg^“deveser do tipo”^tinf) 文件“semantico.ml”,第50行,字符0-3: 错误:语法错误,ocaml,Ocaml,我做错了什么?此函数看起来有效,因此您的问题在它前面的代码中。我假设这个函数从第50行开始,根据您的错误消息,编译器被第50行的前三个字符所冒犯,这将是let。我猜这个函数前面的表达式没有正确终止。解决这个问题的最糟糕的方法是添加一个在声明此函数之前,但如果我能看到更多的代码,则更容易修复。仅此函数就可以很好地编译。在定义之前,您可能有一个错误。请尝试找到重现错误所需的最小代码量,并使用该代码编辑您的帖子(以及任何其他有用的信息,例如您的OCaml版本)。我确认@Marth注释,该函数也可以在我

我做错了什么?

此函数看起来有效,因此您的问题在它前面的代码中。我假设这个函数从第50行开始,根据您的错误消息,编译器被第50行的前三个字符所冒犯,这将是
let
。我猜这个函数前面的表达式没有正确终止。解决这个问题的最糟糕的方法是添加一个
在声明此函数之前,但如果我能看到更多的代码,则更容易修复。

仅此函数就可以很好地编译。在定义之前,您可能有一个错误。请尝试找到重现错误所需的最小代码量,并使用该代码编辑您的帖子(以及任何其他有用的信息,例如您的OCaml版本)。我确认@Marth注释,该函数也可以在我的机器上编译。
let confere_tipo msg tinf tdec =
  if tinf <> tdec
  then failwith (msg ^ " deve ser do tipo " ^ tinf)

File "semantico.ml", line 50, characters 0-3:
Error: Syntax error