Frage

Ich habe am College sehr gern ML gelernt. Ich finde die funktionale Programmierung oft eine erfrischend elegante Möglichkeit, bestimmte Algorithmen zu schreiben. Ich habe von F# gehört und ein bisschen damit herumgespielt. Trotzdem habe ich einige interessante Funktionen in ML geschrieben und möchte sie als Bibliotheken integrieren, die ich in anderen Anwendungen verwenden könnte.

Normalerweise füge ich meine Funktionen in den SMLNJ -Interpreter ein. Gibt es eine Möglichkeit, sie zusammenzustellen?

War es hilfreich?

Lösung

Sie müssen so etwas verwenden Der MLJ -Compiler. Es kompiliert den Java -Byte -Code. Oder Sie können die verwenden Sml.net Compiler zum kompilieren zu .net il.

Andere Tipps

Es ist unter den Ml Damit beide Seiten nach C exportieren und sich dann gegenseitig C -Funktionen anrufen können. Fast alles hat eine FFI -Bibliothek für "leicht", um nach C zu exportieren

http://www.smlnj.org/doc/smlnj-c/index.html

In der Außenwelt würde sich Ihre SML -Bibliothek also wie eine C -Bibliothek verhalten, außer ohne die betroffenen Segfaults und Speicherlecks*

*Keine Garantie

Projekte popularisieren Sprachen. Machen Sie die Grundlage für ein interessantes und unbestreitbar cooles Projekt mit ML, und die Leute werden in die Sprache strömen. Schauen Sie sich zum Beispiel Erlang mit Ejabberd und Mochiweb an-beide coolen Projekte, die Wunder für eine einmalige Sprache in der Rough-Sprache wie Erlang getan haben (was übrigens, meine Entwicklungssprache der Wahl in letzter Zeit). Ich würde gerne sehen, wie jemand mit ML etwas rades macht, die Sprache ist eine Freude zu denken.

Es gibt Mehrere Standard -ML -Compiler. Das Mlton Wiki enthält auch a Benchmark.

Ich habe Moskauer ML verwendet, das Standard -ML in Bytecode zusammenstellt. Es ist nicht schnell, aber es funktioniert. Mlton wird häufig als der beste Standard -ML -Compiler in Bezug auf Effizienz bezeichnet.

Beachten Sie, dass Poly/ml Version 5 oder später sowohl das herkömmliche "Heap-Dump" -Modell als auch eigenständige ausführbare Sendelemente im C-Stil unterstützt. Die Dokumentation über die Poly/ml Website ist über viele verschiedene Stellen verbreitet, einige von ihnen mit wirklich alten Daten im Titel - aber das System lebt und tritt.

Die Objekt-Code-Generation wird beim Passieren erklärt Versionshinweise Für die Version 5.0 (wir sind derzeit bei 5.5): siehe PolyML.export dort.

Es gibt auch eine Poly/ml C -Grenzfläche, die kürzlich für einige GUI -Projekte renoviert wurde. Sie sollten auf der Polyml -Mailingliste fragen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top