如何导入一个模块一个模块(ocaml的)

如何导入一个模块一个模块(ocaml的)

问题描述:

中使用我是新来的函数式编程,并想知道什么是做到这一点的最好办法。我有一个文件(display.ml),其具有的功能是保存,加载,并显示了高分,并具有函数来处理打在纸牌游戏中的转向另一个文件(turn.ml)。我目前正试图将这两个文件结合在一个名为game.ml的文件中。我在display.mlturn.ml中创建了一个模块,其内容包含我以前在文件中写入的所有功能。我想知道将这些模块导入game.ml的最佳方法是什么。我读this,它似乎像模块必须在同一个文件来定义你想使用它如何导入一个模块一个模块(ocaml的)

假设你有三个文件:

cat display.ml 
let p x = Printf.printf "%d" x 

cat turn.ml 
let t =(+) 1 

cat game.ml 
open Display 
open Turn 
let()= 
    p (t 2) 

正如你所看到的,你可以“进口turn.ml”打开方式打开和使用功能T内game.ml

To compile :ocamlbuild game.byte 
Exexcution :./game.byte 
3 
+1

这是一个很好的答案,但请注意,您可以使用的模块,而无需打开它们。你可以写'Display.p'和'Turn.t'。使用'open'应该仔细考虑,因为它对本地命名空间有很大影响。 –