Nur Druckausgabe mit SML / NJ drucken

8

Ich versuche, SML / NJ zu verwenden, und ich verwende sml < source.sml , um den Code auszuführen, aber es gibt zu viele Informationen aus.

Dies ist beispielsweise source.sml :

%Vor%

Dies ist die Ausgabe:

%Vor%

Von "val it" Ausgabe in Standard ML unterdrücken , So deaktivieren Sie SMLNJ-Warnungen? und SMLNJ möchte" val it = (): Einheit "aus jeder Druckanweisung Ausführung entfernen Ich habe ein paar Tipps, wie ich sie unterdrücken kann.

Ich führe CM_VERBOSE=false sml < $filename aus und fügte eine Zeile von Control.Print.out := {say=fn _=>(), flush=fn()=>()}; in den Code ein, aber ich habe noch eine Nachricht:

%Vor%

Wie kann ich nur die Ausgabe ausdrucken?

    
prosseek 14.05.2015, 02:40
quelle

1 Antwort

2

Der Befehl sml soll interaktiv verwendet werden. Es klingt für mich so, als ob Sie lieber eine eigenständige ausführbare Datei von Ihrem Programm erstellen würden.

Es gibt ein paar Optionen:

  1. Wenn Sie auf SML / NJ-Erweiterungen vertrauen oder einfach keine andere ML-Implementierung verwenden können, befolgen Sie die Anweisungen in dieser Beitrag , um ein SML / NJ-Heap-Image zu erstellen, das mit haufen2exec .

  2. Eine bessere Option könnte die Verwendung des Compilers MLton sein, eine weitere Implementierung von Standard ML. Es fehlt eine REPL, aber im Gegensatz zu SML / NJ benötigt es kein Boilerplate, um eine eigenständige ausführbare Datei zu generieren. Bauen ist so einfach wie das Ausgeben:

    %Vor%
Martin Törnwall 14.05.2015, 11:16
quelle

Tags und Links