【问题标题】:Using ML in "Real-World" Applications在“真实世界”应用程序中使用机器学习
【发布时间】:2010-11-06 03:25:41
【问题描述】:

我真的很喜欢在大学学习机器学习。我发现函数式编程通常是编写某些算法的一种令人耳目一新的优雅方式。我听说过 F# 并且玩过它。不过,我在 ML 中编写了一些有趣的函数,并希望将它们集成为可以在其他应用程序中使用的库。

通常我将我的函数粘贴到 SMLnj 解释器中。有没有办法编译下来?

【问题讨论】:

  • SMLnj 也可以编译代码...寻找编译管理器 CM。 (尽管这确实无助于集成到其他应用程序中。)

标签: compiler-construction functional-programming interpreter sml smlnj


【解决方案1】:

您必须使用the MLj Compiler 之类的名称。它编译成 Java 字节码。或者您可以使用SML.NET 编译器编译为.NET IL。

【讨论】:

    【解决方案2】:

    ML 中很常见的是双方都导出到C,然后互相调用C 函数。几乎所有东西都有一个 FFI 库,可以“轻松”导出到 C。

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

    所以对于外界来说,你的 sml 库的行为就像一个 C 库,除了没有关联的段错误和内存泄漏*

    *不是保证

    【讨论】:

      【解决方案3】:

      项目普及语言。使用 ML 为一个有趣且无可否认的“酷”项目做基础工作,人们会涌向该语言。例如,看看 Erlang 与 ejabberd 和 mochiweb——这两个很酷的项目都为像 erlang (顺便说一句,这是我最近选择的开发语言)这样的一次性钻石粗略语言创造了奇迹。作为一个人,我很想看到有人用 ML 做一些有趣的事情,用这种语言思考是一种乐趣。

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

          【解决方案5】:

          请注意,Poly/ML 版本 5 或更高版本同时支持传统的“堆转储”模型和 C 风格的独立可执行文件。 Poly/ML website 上的文档分布在许多不同的地方,其中一些标题中的日期确实很旧 - 但系统仍然存在并且正在运行。

          release notes 中对 5.0 版本(我们目前为 5.5)进行了解释:请参阅PolyML.export 那里。

          还有一些 Poly/ML C 接口,最近经过翻新,用于一些 GUI 项目。您应该在 polyml 邮件列表中询问。

          【讨论】:

            猜你喜欢
            • 2016-01-31
            • 2011-07-03
            • 1970-01-01
            • 2011-01-01
            • 1970-01-01
            • 2017-11-24
            • 1970-01-01
            • 2021-06-16
            • 2018-12-01
            相关资源
            最近更新 更多