Wie integrieren Sie funktionale Programmiersprachen in Java oder C #? [geschlossen]

8

Ich bin daran interessiert, mit OCaml oder Haskell eine Engine für statistische Berechnungen zu entwickeln. Diese Funktionalität soll mit Daten arbeiten, die von einem modellgesteuerten objektorientierten Informationssystem bereitgestellt werden. Das Ganze muss erweitert werden.

Ich kann viele Vorteile sehen, wenn ich zum Beispiel Haskell benutze, aber die Daten aus dem Haskell-Code herauszuholen, ist schwierig. Es gibt immer Out-of-the-Box-Optionen wie C / C ++ - Interfaces oder JNI, aber in einer Architektur, die skalieren soll, finde ich diese Ansätze problematisch und fehleranfällig.

Wenn man bedenkt, dass FP auf dem Vormarsch ist, wie integrieren Menschen diese Sprachen in weit verbreitete Sprachen, also Technologien wie Java? Ich habe beispielsweise ZeroMQ und Protokollpuffer für die Integration von Eiffel nach Java verwendet, aber gibt es irgendwelche Optionen, die sich als stabil und leistungsstark erwiesen haben?

Ps: Stackoverflow warnt mich, dass diese Frage subjektiv erscheint, aber ich frage nach technischen Lösungen, um verschiedene Laufzeiten zu verbinden. Ich habe nicht die Absicht, Vor-und Nachteile jeder Sprache oder Paradigma zu diskutieren.

    
mahonya 15.08.2011, 09:21
quelle

4 Antworten

5

Haben Sie darüber nachgedacht, Scala zu benutzen? Es unterstützt die funktionale Programmierung auf einer JVM-Plattform. Sie könnten es in Java integrieren, aber Sie werden feststellen, dass es nicht benötigt wird.

Sie können auch finden, dass es schneller ist als Haskell, esp. mit enger Integration mit Java.

Ссылка

    
Peter Lawrey 15.08.2011, 09:39
quelle
3

F # bietet Ihnen eine funktionale Programmierung mit der .Net-Plattform für "free" ".

OcamlJava kann Java mit Ocaml verbinden:

  

OCaml-Java ist ein Versuch, Objective Caml auf der Java-Plattform verfügbar zu machen, die derzeit 3.11.2 unterstützt. Das Projekt hat zwei konkrete Ziele: erstens die Fähigkeit, Objective Caml-Quellen zu betreiben, die mit ocamlc kompiliert wurden; zweitens die Möglichkeit, Objective Caml Quellen in ausführbare JAR-Dateien zu kompilieren.

    
huitseeker 15.08.2011 09:39
quelle
1

Sie verwenden Sprachen wie Scala, d. h. Sprachen, die bereits auf der JVM ausgeführt werden.

Es gibt viele funktionale Sprachen, die auf der JVM laufen und sich daher sehr gut mit dem Rest des Java-Codes integrieren lassen.

Mein Liebling ist Scala, aber es gibt auch Clojure und Groovy, um nur ein paar zu nennen.

    
Jes 15.08.2011 10:42
quelle
1

Die Verwendung von Scala oder F # wäre die wirkliche Lösung, wie andere sagen, aber nur für den Fall, dass Ihnen etwas leichter fällt, können Sie auch eine funktionale Programmierung in Java (oder C #) wie diese Leute machen Ссылка , da FP eine Programmierung style ist, die Unveränderlichkeit begünstigt.

    
FPstudent 06.06.2016 09:08
quelle