Nächste: Funktionen und Variablen für Listen, Vorige: Listen, Nach oben: Listen [Inhalt][Index]
Listen werden in Maxima mit eckigen Klammern eingegeben und angezeigt:
[a, b, c, ...]
Die Elemente einer Liste können Zahlen, Symbole, Ausdrücke und auch Listen sein, wodurch verschachtelte Listen entstehen:
(%i1) [1, 1/2, a, a+b, sin(x), [log(y)^2, y]]; 1 2 (%o1) [1, -, a, b + a, sin(x), [log (y), y]] 2
Mit den Funktionen makelist
und create_list
können Listen aus
Ausdrücken generiert werden. Die Funktion copylist
erzeugt eine Kopie
einer Liste. Auf einzelne Elemente oder Teile von Listen kann mit den
Funktionen first
, rest
oder last
zugegriffen werden.
Mit der Aussagefunktion listp
kann getestet werden, ob eine Liste
vorliegt. Für das Arbeiten mit Listen kennt Maxima die folgenden Funktionen:
append assoc cons copylist create_list delete eighth endcons fifth first fourth join last length listp makelist member ninth pop push rest reverse second seventh sixth sort sublist sublist_indices tenth third
Da Maxima intern alle Ausdrücke als Listen darstellt, können viele der oben
aufgeführten Funktionen nicht nur auf Maxima-Listen, sondern auch auf
allgemeine Ausdrücke angewendet werden. So wird zum Beispiel die Addition der
drei Symbole a
, b
, c
von Maxima intern folgendermaßen
als eine Lisp-Liste dargestellt:
((MPLUS) $A $B $C)
Der Operator der Addition ist MPLUS
und die Symbole $A
, $B
und $C
sind die Argumente des Operators. Alle Funktionen für Listen,
die nur auf die Argumente wirken, können auch auf allgemeine Ausdrücke
angewendet werden. Im folgenden werden zum Beispiel die Funktionen
first
, last
, cons
und delete
auf eine
Addition angewendet:
(%i1) expr: a + b + c; (%o1) c + b + a (%i2) first(expr); (%o2) c (%i3) last(expr); (%o3) a (%i4) cons(2*x, expr); (%o4) 2 x + c + b + a (%i5) delete(b, expr); (%o5) c + a
Weitere Beispiele für die Anwendung der Funktionen für Listen auf allgemeine Ausdrücke sind bei den einzelnen Funktionen angegeben. Eine ausführliche Beschreibung der internen Darstellung von Maxima-Ausdrücken ist in Ausdrücke enthalten.
Auf die einzelnen Elemente einer Liste kann direkt über einen Index zugegriffen werden. Bezeichnet der Index kein Element der Liste, gibt Maxima eine Fehlermeldung aus. Im Folgenden werden Beispiele gezeigt:
(%i1) list : [a,b,c]; (%o1) [a, b, c] (%i2) list[1]; (%o2) a (%i3) list[2]; (%o3) b (%i4) list[3]; (%o4) c (%i5) list[1]: sin(x); (%o5) sin(x) (%i6) list[2]: cos(x); (%o6) cos(x) (%i7) list[3]: tan(x); (%o7) tan(x) (%i8) list; (%o8) [sin(x), cos(x), tan(x)]
Listen können auch als Argument einer Funktion auftreten. Hat die Funktion
die Eigenschaft distribute_over
, dann wird die Funktion auf die
Elemente der Liste angewendet. Dies funktioniert auch für Funktionen mit
mehreren Argumenten.
(%i1) sin([x,y,z]); (%o1) [sin(x), sin(y), sin(z)] (%i2) mod([x,y],3); (%o2) [mod(x, 3), mod(y, 3)] (%i3) mod([x,y],[5,7]); (%o3) [[mod(x, 5), mod(x, 7)], [mod(y, 5), mod(y, 7)]]
Nächste: Funktionen und Variablen für Listen, Vorige: Listen, Nach oben: Listen [Inhalt][Index]