2014-09-24 69 views
1

我是新来的这门语言/支持下的湖南省 我有一个简单的问题,但我无法找到答案:如何创建一个模块OCaml并使用它?

我想创建一个我的模块,您可以输入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

也请参见http://计算器。 COM /问题/ 22028151 /独立编译-的-ocaml的模块 – 2014-09-27 21:58:41

回答

1

每个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的顶层使用它:

$ ocamlc -c numtheory.ml 
$ ocaml 
     OCaml version 4.01.0 

# #load "numtheory.cmo";; 
# Numtheory.one;; 
- : int = 1 
# Numtheory.gcd (4, 8);; 
- : int = 8 

(对于它的价值,这看起来不像GCD的正确定义。)