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

Scala 哪些JVM函数语言得到了IDE的良好支持?(IDE:IDEA、Netbeans、Eclipse或类似产品),scala,clojure,functional-programming,intellij-idea,jvm-languages,Scala,Clojure,Functional Programming,Intellij Idea,Jvm Languages,我花了很多时间寻找一种能够无缝访问Java遗留代码(Weka代码)的函数式语言。自动完成导入的Java类方法会非常好。 我将展示我的印象,如果我错了,请纠正我 雪人对我很有吸引力,因为它很简单,而且ML,但我无法为它设置一个好的IDE。我也不知道这种语言本身在现实生活中是否已经可用 Groovy、JRuby和Jython看起来非常成熟,但功能性不强。 Scala是成熟的,但也是面向对象的,至少在Netbeans(和Eclipse,如果我记得很清楚的话)上是有缺陷的 “ocamljava”也是面向

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

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

GroovyJRubyJython看起来非常成熟,但功能性不强。 Scala是成熟的,但也是面向对象的,至少在Netbeans(和Eclipse,如果我记得很清楚的话)上是有缺陷的

ocamljava”也是面向对象的,还没有准备好使用(3个或4个单独的项目)。我认为在IDE中,它更不容易使用

贾斯克尔似乎已经死了

Clojure似乎很成熟,在Intellij IDEA(La Clojure插件)中运行得非常好,但我不确定我是否希望在编码时每行写入超过2个参数

SISCABCL我没有尝试。我认为没有IDE支持

CAL(或Quark…Blah…)语言导致一个SAP站点,之后我对功能JVM语言的耐心搜索结束

有类似的问题,但并不全面。例如:

是否缺少能够直接调用java类的JVM函数语言? 如果YetiClojure一样拥有IDE支持(在IDEA中),它对我来说将是完美的

谢谢

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

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

Scala代码

Clojure代码

壮观

Scala+EclipseIDE(最新版本)似乎越来越好。IntellijIDEA插件也是如此。现在有很多人/公司在用Scala开发。。。我不认为他们都只使用文本编辑器

我认为目前大多数FP语言都是Scala(多范式)和Clojure(纯函数)Scala作为OO有什么不对

你可以期待新的语言出现,比如Kotlin和Ceylon也有功能特性,但它们也将是OO,所以我认为你现在唯一的选择是Scala和Clojure

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


更新:Fantom编程语言现在有了一个基于eclipse的IDE,看起来非常不错。您可以在这里找到:

Clojure在java互操作性+功能性+从lisp获得优势方面非常出色。尽管其他IDE支持clojure,但emacs工作得非常好,只是学习和习惯emacs的编码方式需要时间。

Frege现在也有了一个(仍然非常基本的)。

clojure的互操作故事非常精彩。clojure的一个主要优势是其集合都实现了Java collections API中的接口,只要Java代码不修改其内容,您就不必调整clojure集合或将其复制到Java集合以将其传递给Java代码。反之亦然,Java集合可以与许多有用的Clojure函数一起使用,如
map
reduce
过滤器
等。。。我知道有人因为这个原因抛弃了Scala换了Clojure

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

e、 g

这需要一些时间来适应,但如果你仔细想想,其实并没有那么大的不同。比较下面一行Java代码v.s.Clojure,我认为您会理解这两个代码

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

(println "Hello World")
撇开System.out的限定和Java示例中附加的分号不谈,唯一真正的区别是paren现在位于函数调用的前面。胡说八道


这是不同的,但它可能没有你想象的那么糟糕,如果你尝试一下,你可能会发现语言中有令人信服的好处。如果您想要IDE支持,请查看IntelliJ中的LaClojure或Netbeans中的Enclojure。我知道Enclojure提供了很好的完成支持,我认为这只有在处理大量Java时才真正有用。在Clojure无网演出效果很好。

我只是在发帖后才看到Fantom。第一个缺点是类似Java的语法。类似Java的语法也适用于Scala。Clojure的创建者Rich Hickey对OO模型有强烈的反对意见,你可能对它感兴趣。@skuro好的,Fantom和Scala语法是相似的,但我没有理解Fantom的意思。我能发现的一个不同点是关于乔布斯:在2011年5月,我发现混合Java和Scala在eclipse中工作得不太好——在引用类型时有很多错误。对于纯scala项目来说,这似乎还可以。我们转向IntelliJ,使用相同的maven项目,参考问题消失了,总体上对此感到满意。你确实偶尔会被绞死,或者行动迟缓。所以,目前还没有完美混合的Scala/JavaIDE,但IntelliJ是我目前最喜欢的。我和另一个Scala憎恨者的另一个注意事项是:IDE不是你需要关心的主要东西。JRuby或Clojure也得到了很好的IDE支持。但是语法!这才是真正重要的。主要的语言点是语法。我强烈建议您在选择Scala语法之前检查两次:)Scala+教程想法:您能比较一下Frege和Yeti吗?如果我理解的话,弗雷格是纯洁的。也许它伴随着我不喜欢哈斯凯尔的所有复杂因素。@davips-嗯,雪人严格而不纯洁,弗雷格不严格而纯洁。由于空间限制,我不能在这里多说
(import '(a ScalaMain)) ;'
(def scalainstance (new ScalaMain))
(print "printing: " (. scalainstance test))
blondie.callMe().callMe().any().any().time();

(-> blondie .callMe .callMe .any .any .time)
System.out.println("Hello World");

(println "Hello World")