哪些JVM函数式语言得到了良好的ide支持?(IDE: IDEA、Netbeans、Eclipse或类似)



我花了很多时间寻找一种可以无缝访问Java遗留代码(Weka代码)的函数式语言。自动完成导入的Java类方法是非常好的。我将给出我的印象,如果我错了,请指正。

Yeti对我很有吸引力,因为它很简单,像ML,但我无法为它设置一个好的IDE。我也不知道这门语言本身是否已经在现实生活中可用了。

GroovyJRubyJython看起来非常成熟,但是并没有真正的功能。Scala是成熟的,但也是面向对象的,至少在Netbeans(如果我没记错的话还有Eclipse)上是有bug的。

"OCaML-Java"也是面向对象的,还没有准备好使用(3或4个单独的项目)。我想在ide中使用它会更不容易。

Jaskell似乎死了。

Clojure看起来很成熟,在Intellij IDEA (La Clojure插件)中工作得很好,但我不确定我想在编码时每行写2个以上的双亲。

SISC ABCL 我没有试一试。我认为没有IDE支持。

CAL(或夸克…)语言导致SAP网站,之后我耐心地搜索功能JVM语言结束了。

有类似的问题,但不全面。例如:哪种函数式编程语言在Eclipse中提供了最好的支持?

是一些JVM函数语言,能够调用java类直接失踪?如果Yeti有IDE支持,就像Clojure一样(在IDEA中),对我来说将是完美的。

感谢

编辑 -----------------------------------

我可以在Intellij IDEA中使用Clojure+Scala。互操作性示例:

Scala代码

package a
class ScalaMain {
  def test = {
    "testing!"
  }
}
<<p> Clojure代码/em>
(import '(a ScalaMain)) ;'
(def scalainstance (new ScalaMain))
(print "printing: " (. scalainstance test))

壮观!

Scala + eclipse IDE(最新版本)http://www.scala-ide.org/似乎越来越好了。同样的IntellijIDEA插件。现在有很多人/公司在使用Scala进行开发……我不认为他们都只使用文本编辑器。

我认为目前最流行的FP语言是Scala(多范式)和Clojure(纯函数式)。

你可以期待新语言的出现,比如Kotlin和Ceylon也有函数式特性,但它们也将是面向对象的,所以我认为你现在唯一的选择是Scala和Clojure。

您的列表中缺少Fantom语言。它也有功能特性,但我认为它缺乏IDE支持(或者至少它没有更新到最新版本)

更新:现在有一个基于eclipse的Fantom编程语言IDE,看起来非常不错。你可以在这里找到:http://www.xored.com/products/f4/

Clojure在java互操作性+功能性+具有lisp的优点方面非常出色。虽然其他IDE支持clojure,但emacs的工作非常好,只是需要花时间来学习和习惯emacs的编码方式。

Clojure的互操作故事非常棒。clojure的一个主要优点是,它的集合都实现了Java集合API中的接口,您不必调整clojure集合或将它们复制到Java集合中以将它们传递给Java代码,只要Java代码不修改它们的内容即可。反过来也是正确的,Java集合可以与许多Clojure函数一起使用,如mapreducefilter等。我知道有人因为这个原因放弃了Scala而选择了Clojure。

在Clojure中编写Java互操作代码也很容易,它使用的父级比在同等Java代码中使用的父级更少。

blondie.callMe().callMe().any().any().time();
(-> blondie .callMe .callMe .any .any .time)

这需要一些时间来适应,但如果你仔细想想,它并没有那么不同。比较下面的Java代码行和s. Clojure,我想你会理解的。

System.out.println("Hello World");
(println "Hello World")

贴现系统的资格。out和Java示例中附加的分号,唯一真正的区别是父级现在位于函数调用的前面。疯狂的说话!

这是不同的,但它可能没有你想的那么糟糕,如果你试一试,你可能会发现这门语言的好处。如果您需要IDE支持,请查看IntelliJ中的LaClojure或Netbeans中的Enclojure。我知道Enclojure提供了很好的补全支持,我认为这只有在处理大量Java时才真正有用。在Clojure中执行没有网络的工作很好。

Frege现在也有一个(仍然是非常基本的)eclipse插件。

最新更新