Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在utop中重新加载OCaml模块_Ocaml_Utop - Fatal编程技术网

如何在utop中重新加载OCaml模块

如何在utop中重新加载OCaml模块,ocaml,utop,Ocaml,Utop,是否可以在OCaml中重新加载模块 在使用OCaml代码时,我的开发工作流程是这样的: 首先,在Vim中打开一个文件example.ml,并对其进行破解。切换到另一个终端并运行utop。从utop中,使用指令#use“example.ml”加载代码 返回Vim并对代码进行一些更改。在更改代码之后,我想尝试一下新的更改。返回到utop并重新运行指令#使用“example.ml” 如果有一个#reload指令可以重新加载以前加载的所有模块,那就太好了,但似乎没有是否有办法轻松重新加载以前加载的所有模

是否可以在OCaml中重新加载模块

在使用OCaml代码时,我的开发工作流程是这样的:

首先,在Vim中打开一个文件
example.ml
,并对其进行破解。切换到另一个终端并运行
utop
。从
utop
中,使用指令
#use“example.ml”加载代码

返回Vim并对代码进行一些更改。在更改代码之后,我想尝试一下新的更改。返回到
utop
并重新运行指令
#使用“example.ml”

如果有一个
#reload
指令可以重新加载以前加载的所有模块,那就太好了,但似乎没有是否有办法轻松重新加载以前加载的所有模块?


理想情况下,这将类似于GHCi的命令。

在提出这个问题时,我相信它还没有成为OCaml的构建系统。使用dune,您只需通过以下操作启动一个加载了本地定义库的utop实例(如上所述):

$dune utop--
其中是dune将搜索的目录(递归) 对于将要加载的所有库


假设模块在两次运行之间没有变化。是否可以将对象文件传递给utop?例如,您有一个编译为tree.cma(或tree.cmo)的tree.ml文件,您可以使用命令行“utop tree.cma”加载tree模块吗。如果是这样,您只需使用正确的选项重新启动utop。默认情况下,它在emacs中可能没有那么好的效果,上面写着:
。。。Topfind.reset();;要强制重新加载包…