我想学习和使用ML,但那里有很多编译器。我需要:
我不需要:
例如,我找到了OCaml,OCaml Batteries include和MLton。对我来说有什么建议我应该选择哪一个?
答案 0 :(得分:9)
SML对延续有更好的支持。如果您对延续有强烈需求,那么这是一个更好的选择; OCaml没有对它们的语言支持,但是Oleg的Delimcc库用于分隔连续;在外部,它可能比SML的实现慢。 否则,OCaml这些天似乎有更多的牵引力,所以你应该期望工具和库稍微好一些。
更一般地说,SML往往更优雅,而OCaml有一些更高级的功能,怪癖和用户。在表现方面,他们都很好。
(参见this对两种语言中最常见的片段进行语法比较;当然没有提供OCaml的对象和多态变体。)
答案 1 :(得分:5)
Ocaml满足列表中的所有要求,但continuation除外。它速度快,内存效率高,可移植,具有posix线程绑定和轻量级协作线程的良好库。标准库非常有限,但有很多third-party libraries。
有许多公司在生产中使用OCaml来处理所有类型的事情。 Caml consortium网站上提到了一些公司。
我还建议您阅读一些优秀的OCaml体验报告:
答案 2 :(得分:5)
很好的MLton: