据我所知,本文讨论了OCaml目前的模块类型/签名系统的起源。作者建议对签名中的类型声明(允许单独编译)和显式类型声明(表示性)进行不透明的解释。试图将我自己的一些例子放在一起来演示OCaml模块签名符号试图解决的问题,我在两个文件中编写了以下代码:module typeStringOrdering : ORDERING
le
我对OCaml中的接口和签名有些困惑。据我所读,接口( .mli文件)控制其他程序可以使用/调用哪些值。签名文件看起来是完全相同的,只是命名它,以便您可以创建不同的接口实现。例如,如果我想创建一个类似于Java中的集合的模块:set.mli文件: val is_empty : 'a set -> boolmodule type Set = sig
type
Ocaml组合签名module type ORDERED = sig type comparison = LT | EQ | GT如何指定“输入模块”同时满足两个签名?) -> type t = Left.t * Right.t end
也许是有一种优雅的方法,可以采用签名的“联合”(但不是匿名联合),或者在具体的OR