Nächste: Logische Operatoren, Vorige: Arithmetische Operatoren, Nach oben: Operatoren [Inhalt][Index]
Die Symbole <
, <=
, >=
und >
sind die relationalen
Operatoren "kleiner als", "kleiner als oder gleich", "größer als oder
gleich" und "größer als". Die Namen dieser Operatoren sind jeweils:
"<"
, "<="
, ">="
und ">"
. Diese können dort
eingesetzt werden, wo der Name des Operators benötigt wird.
Die relationalen Operatoren sind binäre Operatoren. Ausdrücke wie
a < b < c
werden von Maxima nicht erkannt und generieren eine
Fehlermeldung.
Relationale Ausdrücke werden von den Funktionen is
und
maybe
sowie den Funktionen if
, while
und
unless
zu booleschen Werten ausgewertet. Relationale Ausdrücke werden
ansonsten nicht zu booleschen Werten ausgewertet oder vereinfacht. Jedoch
werden die Operanden eines booleschen Ausdruckes ausgewertet, wenn die
Auswertung nicht mit dem Quote-Operator
'
unterdrückt ist.
Wenn ein relationaler Ausdruck mit den Funktionen is
oder if
nicht
zu true
oder false
ausgewertet werden kann, wird das Verhalten der
Funktionen von der Optionsvariablen prederror
kontrolliert. Hat
prederror
den Wert true
, wird von is
und if
ein
Fehler erzeugt. Hat prederror
den Wert false
, hat is
den
Rückgabewert unknown
und if
gibt einen konditionalen Ausdruck
zurück, der teilweise ausgewertet ist.
Die Funktion maybe
verhält sich immer so, als ob prederror
den
Wert false
hat, und die Schleifenanweisungen while
sowie
unless
verhalten sich immer so, als ob prederror
den Wert
true
hat.
Relationale Operatoren werden nicht auf die Elemente von Listen oder Matrizen sowie auf die beiden Seiten einer Gleichung angewendet.
Siehe auch die Operatoren =
und #
sowie die Funktionen
equal
und notequal
.
Beispiele:
Relationale Ausdrücke werden von einigen Funktionen zu booleschen Werten ausgewertet.
(%i1) [x, y, z] : [123, 456, 789]; (%o1) [123, 456, 789] (%i2) is (x < y); (%o2) true (%i3) maybe (y > z); (%o3) false (%i4) if x >= z then 1 else 0; (%o4) 0 (%i5) block ([S], S : 0, for i:1 while i <= 100 do S : S + i, return (S)); (%o5) 5050
Relationale Ausdrücke werden ansonsten nicht zu booleschen Werten ausgewertet oder vereinfacht, jedoch werden die Operanden eines relationalen Ausdruckes ausgewertet.
(%i1) [x, y, z] : [123, 456, 789]; (%o1) [123, 456, 789] (%i2) [x < y, y <= z, z >= y, y > z]; (%o2) [123 < 456, 456 <= 789, 789 >= 456, 456 > 789] (%i3) map (is, %); (%o3) [true, true, true, false]
Nächste: Logische Operatoren, Vorige: Arithmetische Operatoren, Nach oben: Operatoren [Inhalt][Index]