我试图编译一个代码,但它给了我一个无意义的错误,我对oCaml非常陌生,所以我肯定会遗漏一些东西
以下是代码
let foo () =
if '\n' = '\n' then begin
print_endline "foo";
end下面是我运行dune build时出现的错误
File "gkoeditor.ml", line 46, characters 7-11:
46 | if '\n' = '\n' then begin
^^^^
Error: This expression has type char but an expression was expected of type
int完整的源代码可以在这里找到https://github.com/dhilst/gkoeditor
我使用的是Curses和Core库,我的环境肯定出了问题,
问候
发布于 2021-10-19 04:13:11
我相信Core覆盖了=的定义,所以它是int -> int -> bool类型的。理由是多态比较有时会导致问题。(如果类型包含函数,则可能会导致异常,并且在存在循环结构时可能会出现分歧。)
多态=从来没有给我带来任何问题,我发现这种重新定义有点麻烦,因为它会生成似乎毫无意义的错误。然而,我可以看到它的优点。
无论如何,您可以通过在Poly模块中专门请求=的多态版本来修复此问题。
https://stackoverflow.com/questions/69624941
复制相似问题