03.11.2012 Aufrufe

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 ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!