首页 > 解决方案 > 我可以用 `let` 实现 OCaml 模块还是需要为它创建一个文件?

问题描述

my_module.mli:

module Make
    (Something: SomeModule.S) = sig
    val f: t->t
    (*...*)
end

my_module.ml:

module Make
    (Something: SomeModule.S) = struct
    let f t = t
    (*...*)
end

好的。假设我想通过做实例化 my_module My_module.Make()。我必须通过一个Something: SomeModule.S.

我发现的一种方法是这样做:

某事.mli

include SomeModule.S

val some_module_fn_1: t->t

东西.ml

let some_module_fn_1 t = t

现在我想我可以创建一个新文件:

主文件

let myModuleImpl = MyModule.Make(Something)

myModuleImpl.f 0

但是我真的需要创建单独的文件something.mlisomething.ml我不能简单地创建他们的实现main.ml吗?

标签: functional-programmingocaml

解决方案


推荐阅读