Informatik I - Institut für Informatik - Christian-Albrechts-Universität zu ...
Informatik I - Institut für Informatik - Christian-Albrechts-Universität zu ...
Informatik I - Institut für Informatik - Christian-Albrechts-Universität zu ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
(genaugenommen eine Operation) use <strong>zu</strong>r Verfügung steht, mit deren Hilfe man Dateien<br />
in das System laden kann.<br />
Standard ML of New Jersey, Version 110.0.3, January 30, 1998<br />
val use = fn : string -> unit<br />
-<br />
Durch das Minuszeichen ” -“ zeigt das System an, daß es eine Benutzereingabe erwartet.<br />
Man nennt ” -“ auch den Prompt von SML97.<br />
Nun kann man beispielsweise mittels des use-Kommandos eine Datei mit einem ML-<br />
Programm in SML97 laden, so wie es in Abschnitt 3.3 schon beschrieben wurde. Wir<br />
gehen im folgenden, wie ebenfalls in diesem Abschnitt angenommen, davon aus, daß in<br />
einer Datei mit dem Namen isperfect.ml das aus den drei Rechenvorschriften divides,<br />
isp undisperfect bestehende ML-Programm <strong>zu</strong>m Testen von perfekten Zahlen enthalten<br />
ist. Gibt man dann nach dem Prompt den Text<br />
use "isperfect.ml";<br />
ein, so antwortet das SML97-System wie nachfolgend angegeben:<br />
[opening isperfect.ml]<br />
val divides = fn int * int -> bool<br />
val isp = fn int * int -> bool<br />
val isperfect = fn int -> bool<br />
val it = () : unit<br />
-<br />
Damit werden die drei geladenen Rechenvorschriften mit ihren Namen und jeweils auch<br />
den Sorten der Parameter und der Sorte des Resultats aufgezählt. Zusätzlich wird noch<br />
eine Konstante it als Abkür<strong>zu</strong>ng <strong>für</strong> das einzige Objekt () der Sorte unit definiert<br />
Nun kann man nach dem Prompt einen geschlossenen Term eingeben, der aufgebaut sein<br />
darf aus den Konstanten und Operationen der elementaren ML-Datenstrukturen und den<br />
Rechenvorschriften, die eben geladen wurden. Ein Beispiel hier<strong>für</strong> ist:<br />
isperfect(6);<br />
Das SML97-System antwortet auf diese Eingabe mit der folgenden Ausgabe:<br />
val it = true : bool<br />
-<br />
SML97 berechnet also den Wert true des Terms isperfect(6) und gibt auch die entsprechende<br />
Sorte bool mit aus. Weiterhin wird die oben erwähnte Konstante it nun als<br />
Abkür<strong>zu</strong>ng <strong>für</strong> den berechneten Wert definiert. Nach dieser Auswertung kann man entweder<br />
weitere Terme <strong>zu</strong>r Auswertung eingeben, oder mittels use weitere Programme aus<br />
Dateien laden, um die darin enthaltenen ML-Programme analog <strong>zu</strong>m Term isperfect(6)<br />
90