Nächste: Interrupts, Vorige: Laufzeitumgebung, Nach oben: Laufzeitumgebung [Inhalt][Index]
Wenn Maxima startet, werden die beiden Dateien maxima-init.mac
und
maxima-init.lisp
automatisch geladen, sofern diese vorhanden sind. Die
Datei maxima-init.mac
wird mit der Funktion batchload
von Maxima
geladen und kann beliebige Maxima-Ausdrücke enthalten, die beim Starten von
Maxima ausgeführt werden. Die Datei maxima-init.lisp
wird mit der
Funktion load
geladen und kann entsprechende Lisp-Anweisungen enthalten.
Beide Dateien erlauben es dem Nutzer, globale Variablen zu setzen, Funktionen zu
definieren oder sonstige Aktionen auszuführen, um zum Beispiel die
Maxima-Umgebung anzupassen.
Die Dateien maxima-init.mac
und maxima-init.lisp
können in jedem
Verzeichnis abgelegt werden, das von der Funktion file_search
gefunden
wird. Üblicherweise wird das Verzeichnis gewählt, das in der
Optionsvariablen maxima_userdir
enthalten ist und die von Maxima beim
Starten entsprechend dem Betriebssystem mit einem Standardwert initialisiert
wird.
Beispiel:
Im Folgenden wird ein Beispiel für den Inhalt einer Datei
maxima-init.mac
gezeigt. In diesem Beispiel werden einige globale
Werte auf neue Anfangswerte gesetzt.
/* maxima-init.mac */ print(" Lade ", file_search("maxima-init.mac"), " ...")$ linel:65$ /* 65 Zeichen pro Zeile */ leftjust:true$ /* Linksbündige Ausgabe */ algebraic:true$ /* Vereinfache algebraische Zahlen */ fpprec:25$ /* große Gleitkommazahlen mit 25 Stellen */ print (" maxima-init.mac ist geladen.")$
Die Optionsvariable maxima_userdir
enthält ein geeignetes Verzeichnis,
um die Datei maxima-init.mac
abzulegen. Mit der Funktion
file_search
kann geprüft werden, ob die Datei von Maxima gefunden wird.
(%i1) maxima_userdir; (%o1) /home/dieter/.maxima (%i2) file_search("maxima-init.mac"); (%o2) /home/dieter/.maxima/maxima-init.mac
Im Folgenden wird Maxima mit einer Datei maxima-init.mac
gestartet, die
die oben angegebenen Maxima Kommandos enthält.
dieter@dieter:~/Maxima/maxima$ rmaxima Maxima 5.25.1 http://maxima.sourceforge.net Mit Lisp SBCL 1.0.53 Lizensiert unter der GNU Public License. Siehe die Datei COPYING. Gewidmet dem Andenken an William Schelter. Die Funktion bug_report() gibt Informationen zum Berichten von Fehlern. Lade /home/dieter/.maxima/maxima-init.mac ... maxima-init.mac ist geladen. (%i1)
Die Sitzung wird fortgesetzt, die Variablen enthalten die gewünschten neuen Standardwerte und die Anzeige ist linksbündig formatiert.
(%i1) linel; (%o1) 65 (%i2) algebraic; (%o2) true (%i3) fpprec; (%o3) 25
Hinweis:
Mit dem Kommando reset
werden die Optionsvariablen nicht auf die Werte
der Datei maxima-init.mac
zurückgesetzt, sondern auf die
ursprünglichen in Maxima festgelegten Standardwerte. Wird das Kommando
kill
ausgeführt, gehen weiterhin alle in der Initialisierungsdatei
definierten Variablen und Funktionen verloren. In beiden Fällen muss die
Datei maxima-init.mac
erneut zum Beispiel mit der Funktion
load
geladen werden.
Die obige Sitzung wird fortgesetzt. Die Variablen werden mit reset
zurückgesetzt. Dann wird die Datei maxima-init.mac
mit der Funktion
load
geladen.
(%i4) reset(); (%o1) [features, fpprec, _, __, labels, %, linenum, algebraic, tr-unique, leftjust, lispdisp] (%i2) fpprec; (%o2) 16 (%i3) load("maxima-init.mac"); Lade /home/dieter/.maxima/maxima-init.mac ... maxima-init.mac ist geladen. (%o3) /home/dieter/.maxima/maxima-init.mac (%i4) fpprec; (%o4) 25
Die obigen Ausführungen treffen auf gleiche Weise auf die Datei
maxima-init.lisp
zu, wobei in diesem Fall die Datei Lisp-Anweisungen
enthält.
Beispiel:
Das folgende Beispiel zeigt die Übersetzung des obigen Beispiels für die
Datei maxima-init.mac
in Lisp-Anweisungen.
;;; maxima-init.lisp (format t " Lade ~A ...~%" ($file_search "maxima-init.lisp")) (setq $linel 65) (setq $leftjust t) (setq $algebraic t) (setq $fpprec 25) (fpprec1 nil $fpprec) (format t " maxima-init.lisp ist geladen.~%")
Die Datei maxima-init.lisp
ist im besonderen dazu geeignet, einen
Patch in Maxima einzuspielen, um einen Programmierfehler zu beheben.
Nächste: Interrupts, Vorige: Laufzeitumgebung, Nach oben: Laufzeitumgebung [Inhalt][Index]