【问题标题】:OCaml for JVM. Is there any? [closed]用于 JVM 的 OCaml。有没有? [关闭]
【发布时间】:2010-12-04 23:50:42
【问题描述】:

我查看了一些用于 JVM 的新语言。如今,其中两个引起了极大的兴趣:Clojure 和 Scala。但依我拙见,两者都不理想。 (让我们保持猜测,因为我不想损害自己的讨论..)

我实际上认为一个棘手的举动是 MS 的发明 - F#。只需将 OCaml 语言迁移到 .NET 平台,效果就不错了。

问题是:有人设法为 JVM 编写了功能齐全的 OCaml 编译器吗?如果这是个好主意,你会说什么?

【问题讨论】:

    标签: jvm ocaml jvm-languages


    【解决方案1】:

    "OCaml and Java" 有各种尝试将 Java 与 OCaml 集成的链接。

    F# 在某些方面与 OCaml 有所不同,因为它希望能够与 .NET 框架一起使用,因此,就像 Scala 是一种混合语言一样,F# 也是如此,因为您可以选择所需的 FP以及您想要多少 OOP,无论是哪种语言。

    "Java, OCaml, and F#" 是一个尝试从 Java 迁移到 OCaml 的帖子,您可能会觉得这很有趣。

    【讨论】:

    • 谢谢,詹姆斯。我不知道 F# 不复制 OCaml。
    • 它们非常相似,如果你小心的话,你的 OCaml 源代码应该可以在 F# 中工作,但它们为 .NET 扩展了 F#。
    • 只是因为我很好奇,在什么情况下 ocaml 代码不能像 F# 一样工作?
    • 单态类型、函子、结构子类型、多态变体、递归类型、递归模块、排版(格式模块)、宏(camlp4)、模式中的非整数数字文字
    • @LB - 这是一个处理您的问题的线程:stackoverflow.com/questions/179492/f-and-ocaml
    【解决方案2】:

    Cafesterol 怎么样:http://cafesterol.x9c.fr/

    Cafesterol 是生成 Java 字节码的 Objective Caml 编译器套件的扩展。 Cafesterol 提供了一个 ocamljava 编译器,它是与 Objective Caml 标准发行版一起分发的 ocamlc/ocamlopt 编译器的 Java 对应物。 Cafesterol 在其 1.3 版本中使用 3.11.1 版本的 Objective Caml 构建。生成的 Java 类需要 1.3 版本的 Cadmium 才能运行,并且可以在任何 Java 1.6 虚拟机上执行。

    【讨论】:

    • 最后的历史记录是“Version 1.4 (2010-02-06)”;_;
    【解决方案3】:

    Yeti 在结构和类型系统方面(虽然在语法上有点不同,并且是 Java 集成的扩展)都基于 Ocaml 等机器学习。由于它对(递归)记录类型的强大支持,我认为它目前是最接近 Ocaml 的一种。

    用于 JVM 的 F# 类型。

    http://mth.github.com/yeti/

    【讨论】:

      【解决方案4】:

      Ocaml-Java 尽可能接近 JVM 的“官方”OCaml。看起来质量很高。

      (另外,用于 JVM 的 Haskell:Frege

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-10
        • 2017-03-19
        • 1970-01-01
        • 1970-01-01
        • 2010-10-16
        相关资源
        最近更新 更多