Java Ocaml学习资源

Java Ocaml学习资源,java,ocaml,Java,Ocaml,我们正在考虑在项目中使用函数式语言。我试图收集我们可以从哪种函数式语言开始的要点(我们主要是java开发人员)。我们正在考虑使用Ocaml。 我试着从他们的网站ocaml.org学习。对于那些在工作场所使用Ocaml的人,我有以下问题 与Java相比,Ocaml减少了代码行吗 你使用什么编辑器 我看到有许多Ocaml库实现- 电池、核心等。在开始时,只有电池能满足需要吗 您使用的是ocamlcore(由Jane Street提供)吗?相比之下有什么不同 到标准一号 起初,我们计划少量使用Ocam

我们正在考虑在项目中使用函数式语言。我试图收集我们可以从哪种函数式语言开始的要点(我们主要是
java
开发人员)。我们正在考虑使用Ocaml。 我试着从他们的网站ocaml.org学习。对于那些在工作场所使用
Ocaml
的人,我有以下问题

  • 与Java相比,Ocaml减少了代码行吗
  • 你使用什么编辑器
  • 我看到有许多
    Ocaml库
    实现- 电池、核心等。在开始时,只有电池能满足需要吗
  • 您使用的是
    ocamlcore
    (由Jane Street提供)吗?相比之下有什么不同 到标准一号

  • 起初,我们计划少量使用
    Ocaml
    ,可能是内部项目。

    在Vector Fabrics,我们广泛使用Ocaml

    认识到功能编程可以给我们的工程活动带来的优势(我们主要是构造用于分析C和C++程序的软件工具),我们认为Haskell和OcAML都是语言使用。最后,我们决定使用OCaml,主要是因为它的执行模型更简单(急切的评估与Haskell的懒惰评估相比),因此对于不一定具有函数式编程背景的程序员来说,关于程序行为的推理更简单(我们特别关注关于程序空间行为的推理,有时甚至对专家来说,在哈斯克尔相当具有挑战性)

    OCaml允许您有选择地“退出”命令式甚至面向对象编程有时很方便,但我们不建议程序员将其作为日常编程的良好实践。我们的基本原理是:一旦采用函数式编程语言,最好使用它在中进行函数式编程,否则很容易编写IMP(为此目的)语法笨拙的推理和面向对象程序。毕竟,如果您认为面向对象编程更好地服务于问题域,那么您最好选择像Java这样更适合这种编程的语言

    回答您的问题:

  • 与Java相比,Ocaml是否减少了代码行数?是的,但前提是确实采用了“函数式”编程。此外,请注意:函数式程序可能非常简洁,但有时符号可能会掩盖算法固有的复杂性
  • 您使用什么编辑器?我们主要使用像emacs和vim这样的通用编辑器
  • 我看到有很多Ocaml库实现——电池、核心等。一开始只有电池能满足需要吗?电池是一个很好的、功能强大的标准库(但核心也是如此)。根据您的问题域,您可能需要使用自己的实用程序库扩展标准库
  • 您是否使用Ocaml Core(由Jane Street提供)?它与标准的有多大不同?我们不使用它,但请参见,例如

  • 请注意,这些问题有很多可能的答案,我在很大程度上完全是从向量结构的角度来回答的。事实上,您的问题对于堆栈溢出来说可能有点过于宽泛。

    我认为,除了标题之外,这个问题并没有那么糟糕。它不是要求找到一个工具,而是提供一些指导,一个d与经验分享。虽然答案可能是自以为是的,但仍然有一些社区知识可以分享,比如与其他图书馆比较
    core
    ,不同编辑的支持程度等等。确切地说。我不是要求资源、书籍或比较。我期待人们对Ocam的经验l、 由于该语言几乎和Java一样古老,我相信在大量使用Ocaml的生产环境中会有相当大的系统。