例如,我想将以下文件动态加载到我的程序中并打印出结果。
input1.txt - >打印100
let x = 10 in x * x
input2.txt - >打印3
let x = 1 and y = 2 in x + y
input3.txt - >打印4
let ls = [1;2;3;4] in List.length ls
ocaml_plugin可能对此项目有用。我想知道如何实现它的更多细节。谢谢!
答案 0 :(得分:2)
OCaml参考手册中的相关部分是dynlink library上的章节(可以找到here的教程)。 ocaml_plugin
提供了一个围绕此库的包装器并自动编译代码。
否则,您必须先将.ml
文件编译成.cmo
文件,然后再加载dynlink
,或者先从程序中调用编译器(或冒险,直接通过compiler front-end)。
在你的例子中,似乎有一个共同的模式(即一个不带参数的函数并返回一个整数),并且可以定义一个接口。