Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想学习和使用 ML,但是那里有很多编译器。我需要:
我不需要:
例如,我发现OCaml、OCaml Batteries include和MLton。对我有什么建议我应该选择哪一个?
SML 对延续有更好的支持。如果你对延续有强烈的需求,那是更好的选择;OCaml 没有对它们的语言内支持,但是 Oleg 的Delimcc库用于分隔延续;作为外部,它可能比 SML 的实现慢。否则,OCaml 现在似乎有更多的吸引力,所以你应该期望工具和库会稍微好一些。
更一般地说,SML 往往更优雅,而 OCaml 有一些更高级的功能、怪癖和用户。在性能方面,它们都很好。
(有关两种语言最常见片段的句法比较,请参阅this;当然,没有介绍 OCaml 的对象和多态变体。)
Ocaml 满足您列表中的所有要求,但延续除外。它速度快、内存高效、可移植,具有 posix 线程绑定和用于轻量级协作线程的良好库。标准库非常有限,但有很多第三方库。
有许多公司在生产中使用 OCaml 来处理各种事情。Caml 联盟网站上提到了其中一些公司。
我还推荐阅读一些优秀的 OCaml 体验报告:
简街资本的 OCaml
XenSource 的 OCaml
对 MLton 来说很好: