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]