我对OCaml中的接口和签名有些困惑。据我所读,接口( .mli文件)控制其他程序可以使用/调用哪些值。签名文件看起来是完全相同的,只是命名它,以便您可以创建不同的接口实现。例如,如果我想创建一个类似于Java中的集合的模块:set.mli文件: val is_empty : 'a set -> bool
va
嗨,我一直在互联网上检查,以找到一种在OCaml中实现“字符串是否以特定文本结尾”的好方法,我发现在OCaml中操作字符串并不像我预期的那样简单。下面是我的OCaml代码,它使用Str.regexp检查文件名称是否以".ml“结尾,以查看它是否是OCaml脚本文件。我总是在输出中得到结果,例如
./utilities/dict.ml is not an
我试图使用警告装饰器([@*ocaml.warning])在本地删除关于特定未使用函数的警告,但是我找不到正确的语法(如果有语法的话)。我使用的是OCaml 4.02.1。在下面的代码中,我有一个dbg函数,它不是导出的,也从未使用过,但是我想对它保持沉默,警告32 (unused value dbg)。A.mli:
val f :