首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >oCaml '\n‘= '\n’无法编译

oCaml '\n‘= '\n’无法编译
EN

Stack Overflow用户
提问于 2021-10-19 03:57:58
回答 1查看 100关注 0票数 1

我试图编译一个代码,但它给了我一个无意义的错误,我对oCaml非常陌生,所以我肯定会遗漏一些东西

以下是代码

代码语言:javascript
运行
复制
  let foo () =
    if '\n' = '\n' then begin
      print_endline "foo";
    end

下面是我运行dune build时出现的错误

代码语言:javascript
运行
复制
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库,我的环境肯定出了问题,

问候

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-19 04:13:11

我相信Core覆盖了=的定义,所以它是int -> int -> bool类型的。理由是多态比较有时会导致问题。(如果类型包含函数,则可能会导致异常,并且在存在循环结构时可能会出现分歧。)

多态=从来没有给我带来任何问题,我发现这种重新定义有点麻烦,因为它会生成似乎毫无意义的错误。然而,我可以看到它的优点。

无论如何,您可以通过在Poly模块中专门请求=的多态版本来修复此问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69624941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档