有些函数在OCaml中很容易实现(例如,从列表映射),但您可以使用OCaml库的映射:List.map
但是,我们可以想知道哪些代码更有效.调用单独编译单元(库)的模块可能会使某些可能的优化无效.我在新闻组fa.caml中读到,当从库中调用函数时,会使用闭包.
我在生产中使用了OCaml代码,它使用Modules和Functors进行泛型编程.由于历史原因,我的代码是单一的:全部在一个文件中.现在我有更多时间,我愿意将代码分成这些模块的文件.但是,我担心我会失去性能,因为我花了一段时间才能把它弄好.例如,我有用于使用数字包装复杂对象的模块,因此我强制执行唯一的表示和快速比较.我将这些包装对象与通用的Maps,Sets和构建缓存一起使用.
问题是:
在C++中,如果在.h中定义类方法,编译器可能最终内联短方法等.是否可以使用分离文件在OCaml中实现?