15

Java のレガシー コード (Weka コード) にシームレスにアクセスできる関数型言語を探すのに多くの時間を費やしました。インポートされた Java クラス メソッドのオートコンプリートは優れています。感想を述べますので、間違っていたら訂正してください。

YetiはシンプルでMLに似ているのでとても魅力的ですが、適切な IDE をセットアップできませんでした。言語自体がすでに実生活で使用できるかどうかもわかりません。

GroovyJRuby、およびJythonは非常に成熟しているように見えますが、実際には機能していません。 Scalaは成熟していますが、オブジェクト指向でもあり、少なくとも Netbeans (よく覚えていれば Eclipse) ではバグがあります。

OCaML-Java」も OO であり、すぐには使用できません (3 つまたは 4 つの個別のプロジェクト)。IDE では、使用する準備がさらに整っていないと思います。

ジャスケルは死んでいるようだ。

Clojureは成熟しているようで、Intellij IDEA (La Clojure プラグイン) で非常にうまく機能しますが、コーディング中に 1 行に 2 つ以上の括弧を書きたいかどうかはわかりません。

SISCABCLは試していません。IDE サポートはないと思います。

CAL (または Quark ... Blah ...) 言語は SAP サイトにつながり、その後、機能的な JVM 言語を探す私の忍耐は終わりました。

同様の質問がありますが、包括的ではありません。例: Eclipse で最適なサポートを提供する関数型プログラミング言語はどれですか?

Java クラスを直接呼び出すことができる JVM 関数型言語がいくつかありませんか? Clojureが (IDEA で) 持っているように、 Yetiが IDE をサポートしていれば、私には完璧だろう。

ありがとう

編集 - - - - - - - - - - - - - - - - - -

Intellij IDEA で Clojure+Scala を使用できました。相互運用性の例:

スカラコード

package a
class ScalaMain {
  def test = {
    "testing!"
  }
}

Clojure コード

(import '(a ScalaMain)) ;'
(def scalainstance (new ScalaMain))
(print "printing: " (. scalainstance test))

素晴らしい!

4

4 に答える 4

10

Scala + eclipse IDE (最新バージョン) http://www.scala-ide.org/はどんどん良くなっているようです。IntellijIDEA プラグインについても同じです。現在、Scala を使用して開発を行っている人や企業はたくさんあります... すべてがテキスト エディターだけを使用しているとは思いません。

現時点でほとんどの FP 言語は Scala (マルチパラダイム) と Clojure (純粋関数型) だと思います。Scala がオブジェクト指向であることの何が問題なのですか?

Kotlin や Ceylon などの関数型の機能を備えた新しい言語も期待できますが、それらも OO になるため、現時点では Scala と Clojure のどちらかを選択するしかないと思います。

リストに Fantom 言語がありません。機能的な機能もありますが、IDE サポートが不足していると思います (または、少なくとも最新バージョンに更新されていません)。

更新: Fantom プログラミング言語用の eclipse ベースの IDE があります。ここで見つけることができます: http://www.xored.com/products/f4/

于 2011-07-28T10:25:11.830 に答える
4

Clojure は、Java の相互運用性 + 機能的 + Lisp の利点という点で優れています。他の IDE は clojure をサポートしていますが、emacs のコーディング方法を習得して慣れるのに時間がかかることを除けば、emacs は非常にうまく機能します。

于 2011-07-29T04:21:21.737 に答える
2

Clojure の相互運用の話は素晴らしいです。clojure の主なメリットは、そのコレクションがすべて Java コレクション API に付属するインターフェースを実装していることです。Clojure コレクションを適合させたり、Java コレクションにコピーして Java コードに渡したりする必要はありません。それらの内容を変更します。逆もまた真です。Java コレクションは、便利な Clojure 関数の多くで使用できますmap reduce filter。とりわけ、この理由で Clojure のために Scala を捨てた人を知っています。

また、Clojure では、同等の Java コードで使用するよりも少ない括弧を使用する Java 相互運用コードを簡単に作成できます。

例えば

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

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

慣れるまで少し時間がかかりますが、考えてみれば、それほど違いはありません。次のJavaコードとClojureを比較してください。両方を理解できると思います。

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

(println "Hello World")

System.out の修飾と Java の例の追加のセミコロンを無視すると、唯一の実際の違いは、括弧が関数呼び出しの前にあることです。クレイジートーク!

それは違いますが、あなたが思っているほど悪くはないかもしれません。試してみると、その言語に説得力​​のある利点が見つかるかもしれません。IDE のサポートが必要な場合は、IntelliJ の LaClojure または Netbeans の Enclojure を調べてください。Enclojure が優れた補完サポートを提供していることは知っていますが、これはほとんどの場合、多くの Java を扱っている場合にのみ役立ちます。Clojure でネットなしで実行すると問題なく動作します。

于 2012-01-15T02:48:44.270 に答える
1

Frege には、(まだ非常に基本的な) eclipse プラグインも含まれています。

于 2012-01-15T01:55:25.220 に答える