我是这门语言/ Tecnology的新手 我有一个简单的问题,但我找不到答案:
我想创建一个我的模块,您可以在其中输入OCaml简单函数/赋值,如下所示
let rec gcd (m, n) = if m = 0 then n
else gcd (n mod m, n);;
let one = 1;;
let two = 2;;
将这些功能用于其他程序OCaml
答案 0 :(得分:2)
每个OCaml源文件形成一个与文件名称相同的模块(第一个字符为大写)。因此,一种方法可以做你想要的是一个名为(例如)numtheory.ml的文件:
$ cat numtheory.ml
let rec gcd (m, n) = if m = 0 then n
else gcd (n mod m, n)
let one = 1
let two = 2
这形成了一个名为Numtheory的模块。您可以编译它并链接到项目中。或者你可以编译它并从OCaml toplevel中使用它:
$ ocamlc -c numtheory.ml
$ ocaml
OCaml version 4.01.0
# #load "numtheory.cmo";;
# Numtheory.one;;
- : int = 1
# Numtheory.gcd (4, 8);;
- : int = 8
(对于它的价值,这看起来并不像gcd的正确定义。)