Ocaml utop 不(但确实)识别 Big_int
Ocaml utop does not (but does) recognise Big_int
我有一些使用模块 Big_int
的代码,例如:
open Big_int;;
Big_int.gcd_big_int 5 6;;
然而,当我用 utop dune utop --release
编译它时(我使用 release
来避免一些警告),然后我得到这个错误:
Error: Required module `Big_int' is unavailable
我读过它,我读过 (https://groups.google.com/g/felix-language/c/1CfHgpe9zps?pli=1) 'Big_int is no longer part of the OCaml distribution. It was replaced by Zarith'。好吧,我知道,而且我仍然可以使用 Big_int
.
我怎么知道的?关键是,如果我从 utop
开始任何其他没有错误的文件,一旦进入内部我打开 Big_int
,那么它不会后悔:
utop # open Big_int;;
到达那里后,它会像 Big_int.add_big_int
一样自动完成我的 Big_int.
。所以 Big_int
在某个地方并且被识别(VSCode 也自动完成它)。
有些事情我不明白。有帮助吗?
出于兼容性原因,num
库的二进制文件仍安装(2021 年)在编译器目录中。这就是你在 utop 中看到的。
但是,num
已被弃用,取而代之的是 Zarith
。
如果出于某些迫切的需要,需要使用num
,在与dune utop
一起使用之前,需要在项目的沙丘文件中将其声明为依赖项。
我有一些使用模块 Big_int
的代码,例如:
open Big_int;;
Big_int.gcd_big_int 5 6;;
然而,当我用 utop dune utop --release
编译它时(我使用 release
来避免一些警告),然后我得到这个错误:
Error: Required module `Big_int' is unavailable
我读过它,我读过 (https://groups.google.com/g/felix-language/c/1CfHgpe9zps?pli=1) 'Big_int is no longer part of the OCaml distribution. It was replaced by Zarith'。好吧,我知道,而且我仍然可以使用 Big_int
.
我怎么知道的?关键是,如果我从 utop
开始任何其他没有错误的文件,一旦进入内部我打开 Big_int
,那么它不会后悔:
utop # open Big_int;;
到达那里后,它会像 Big_int.add_big_int
一样自动完成我的 Big_int.
。所以 Big_int
在某个地方并且被识别(VSCode 也自动完成它)。
有些事情我不明白。有帮助吗?
出于兼容性原因,num
库的二进制文件仍安装(2021 年)在编译器目录中。这就是你在 utop 中看到的。
但是,num
已被弃用,取而代之的是 Zarith
。
如果出于某些迫切的需要,需要使用num
,在与dune utop
一起使用之前,需要在项目的沙丘文件中将其声明为依赖项。