5

我真的很喜欢在大学学习ML。我发现函数式编程往往是编写某些算法的一种令人耳目一新的方式。我听说过F#并且在那里玩了一下。不过,我已经在ML中编写了一些有趣的函数,并希望将它们作为我可以在其他应用程序中使用的库进行集成。在“真实世界”应用中使用ML

通常我将我的函数粘贴到SMLnj解释器中。有什么方法可以编译它们吗?

+1

SMLnj也可以编译代码...寻找CM,编译管理器。 (虽然这实际上并没有帮助集成到其他应用程序。) – ephemient 2009-06-26 15:11:33

回答

5

您将不得不使用类似the MLj Compiler之类的东西。它编译为Java字节代码。或者,您可以使用编译器SML.NET编译为.NET IL。

+0

美丽,这两个看起来像两个不错的选择。 – Chet 2009-06-26 12:54:59

4

这是普通的ML双方导出到C然后调用其他C函数。只是一切有“易”导出到C.

一个FFI库

http://www.smlnj.org/doc/SMLNJ-C/index.html

所以对外界的SML库会像一个C库除非出assiciated内存设计缺陷和内存泄漏*

*不是保证

2

项目普及语言。使用ML进行一个有趣且不可否认的“酷”项目的基础工作,人们会涌向这种语言。例如,用ejabberd和mochiweb来看看Erlang--这两个酷酷的项目都为Erlang这样的一次性钻石语言创造了奇迹(这也是我最近选择的开发语言)。我一个人,会喜欢看到有人用ML来做一些事情,这种语言是一种愉快的想法。

2

还有several Standard ML compilers。 MLton wiki还包含一个benchmark

我用莫斯科ML将标准ML编译成字节码。这并不快,但它的工作原理。 MLton经常被认为是效率方面最好的标准ML编译器。

0

请注意,Poly/ML版本5或更高版本同时支持传统的“堆转储”模型和C风格的独立可执行文件。关于Poly/ML website的文档分布在许多不同的地方,其中一些在标题中有着非常古老的日期 - 但系统仍然活着并且踢球。

目标代码生成在版本5.0发行版(我们目前在5.5)下传递release notes进行了解释:请参阅PolyML.export

还有一些Poly/ML C界面,最近已经对一些GUI项目进行了翻新。你应该问在polyml邮件列表。