FullForm | Ausgabe eines Ausdrucks im LISP-Format |
Echo | Ausgaberoutine |
PrettyForm | formatierte Ausgabe |
EvalFormula | formatierte Darstellung einer Berechnung |
Write | elementare Ausgaberoutine |
WriteString | elementare Ausgaberoutine für Strings |
Space | Ausgabe von Leerzeichen |
NewLine | Ausgabe von Zeilenvorschüben |
FromFile | Eingabeumleitung zum Lesen aus einer Datei |
FromString | Eingabeumleitung zum Lesen aus einem String |
ToFile | Ausgabeumleitung zur Ausgabe in eine Datei |
ToString | Ausgabeumleitung zur Ausgabe in einen String |
Read | einen Ausdruck einlesen |
LispRead | einen Ausdruck in LISP-Syntax einlesen |
ReadToken | ein Token einlesen |
Load | alle in einer Datei enthaltenen Ausdrücke auswerten |
Use | eine Datei einmalig einlesen |
DefLoad | eine .def-Datei einlesen |
FindFile | eine Datei suchen |
PatchLoad | alle Befehle zwischen <? und ?> einer Datei ausführen |
Nl | Zeilenvorschubzeichen |
In> FullForm(a+b+c); (+ (+ a b )c ) Out> a+b+c; In> FullForm(2*I*b^2); (* (Complex 0 2 )(^ b 2 )) Out> Complex(0,2)*b^2; |
In der zweiten Form werden alle Listenelemente nacheinander ausgegeben.
Das Ergebnis von Echo ist immer True.
In> Echo(5+3); 8 Out> True; In> Echo({"The square of two is ", 2*2}); The square of two is 4 Out> True; |
Zum Ausdrucken einer Liste muss die zweite Form verwendet werden:
In> Echo({a,b,c}); a b c Out> True; In> Echo({{a,b,c}}); {a,b,c} Out> True; |
In> Taylor(x,0,9)Sin(x) Out> x-x^3/6+x^5/120-x^7/5040+x^9/362880; In> PrettyForm(%) 3 5 7 9 x x x x x - -- + --- - ---- + ------ 6 120 5040 362880 Out> True; |
In> EvalFormula(Taylor(x,0,7)Sin(x)) 3 5 7 x x x Taylor( x , 0 , 7 , Sin( x ) ) = x - -- + --- - ---- 6 120 5040 Out> True |
In> Write(1); 1Out> True; In> Write(1,2); 1 2Out> True; |
In> Write("Hello, world!"); "Hello, world!"Out> True; In> WriteString("Hello, world!"); Hello, world!Out> True; |
In> Space(5); Out> True; |
In> NewLine(); Out> True; |
2 + 5; |
Die Datei lässt sich z.B. folgendermaßen auslesen:
In> FromFile("foo") res := Read(); Out> 2+5; In> FromFile("foo") res := ReadToken(); Out> 2; |
In> FromString("2+5; this is never read") res := Read(); Out> 2+5; In> FromString("2+5; this is never read") res := Eval(Read()); Out> 7; |
In> [ Echo("Result:"); PrettyForm(Taylor(x,0,9) Sin(x)); ]; Result: 3 5 7 9 x x x x x - -- + --- - ---- + ------ 6 120 5040 362880 Out> True; |
Die Ausgabe soll jetzt in eine Datei umgeleitet werden:
In> ToFile("out") [ Echo("Result:"); PrettyForm(Taylor(x,0,9) Sin(x)); ]; Out> True; |
Der Dateiinhalt nach der Anweisung:
Result: 3 5 7 9 x x x x x - -- + --- - ---- + ------ 6 120 5040 362880 |
In> str := ToString() \ In> [ WriteString("The square of 8 is "); Write(8^2); ]; Out> "The square of 8 is 64"; |
In> FromString("2+5;") Read(); Out> 2+5; In> FromString("") Read(); Out> EndOfFile; |
Der Ausdruck a+b lautet in LISP-Syntax (+ a b).
In> FromString("(+ a b)") LispRead(); Out> a+b; In> FromString("(List (Sin x) (- (Cos x)))") LispRead(); Out> {Sin(x),-Cos(x)}; |
Ein Token ist die kleinste Einheit, in die ein Ausdruck zerlegt werden kann. Z.B. besteht a := foo aus den drei Token a, := und foo.
In> FromString("a := Sin(x)") \ In> While((tok := ReadToken()) != EndOfFile) Echo(tok); a := Sin ( x ) Out> True; |
Diese Funktion stellt sicher, dass eine Datei geladen ist, jedoch nicht ein zweites Mal eingelesen wird.
In eine ansonsten statische Textdatei lassen sich somit dynamische Anteile einbetten.
In> WriteString("First line" : Nl() : "Second line" : Nl()); First line Second line Out> True; |