如何创建模块OCaml并使用它?

时间:2014-09-24 15:37:11

标签: ocaml

我是这门语言/ 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

1 个答案:

答案 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的正确定义。)