Next: Operatoren für Gleichungen, Previous: Relationale Operatoren, Nach oben: Operatoren [Inhalt][Index]
Ist der logische Operator der Konjunktion. and ist ein
N-ary-Operator. Die Operanden sind boolesche Ausdrücke und das Ergebnis ist
ein boolescher Wert.
Der Operator and erzwingt die Auswertung aller oder einen Teil der
Operanden. Die Operanden werden in der Reihenfolge ausgewertet, in der sie
auftreten. and wertet nur so viele Operanden aus, wie nötig sind, um
das Ergebnis des Ausdrucks zu bestimmen. Hat irgendein Argument den Wert
false, ist das Ergebnis false und die weiteren Argumente werden
nicht ausgewertet.
Die Optionsvariable prederror kontrolliert das Verhalten von and
für den Fall, dass ein Operand nicht zu true oder false
ausgewertet werden kann. and gibt eine Fehlermeldung aus, wenn
prederror den Wert true hat. Andernfalls werden Operanden
akzeptiert, die nicht zu true oder false ausgewertet werden
können und das Ergebnis ist ein boolescher Ausdruck.
and ist nicht kommutativ, da aufgrund von nicht ausgewerteten Operanden
die Ausdrücke a and b und b and a ein unterschiedliches Ergebnis
haben können.
Beispiele:
(%i1) n:2; (%o1) 2 (%i2) integerp(n) and evenp(n); (%o2) true (%i3) not(a=b) and 1=1 and integerp(2); (%o3) true (%i4) not(a=b) and 1=1 and oddp(2); (%o4) false (%i5) a and b; (%o5) a and b (%i6) prederror:true$ (%i7) a and b; Unable to evaluate predicate a -- an error. To debug this try: debugmode(true);
Da and nur so viele Operanden auswertet wie notwendig sind, um das
Ergebnis festzustellen, führt der syntaktische Fehler im zweiten Operanden
nicht zu einer Fehlermeldung, das das Ergebnis bereits mit dem ersten
Operanden feststeht.
(%i8) a=b and sin(2,2); (%o8) false
Ist der logische Operator der Disjunktion. or ist ein N-ary-Operator.
Die Operanden sind boolesche Ausdrücke und das Ergebnis ist ein boolescher
Wert.
Der Operator or erzwingt die Auswertung aller oder einen Teil der
Operanden. Die Operanden werden in der Reihenfolge ausgewertet, in der sie
auftreten. or wertet nur so viele Operanden aus wie nötig sind, um
das Ergebnis des Ausdrucks zu bestimmen. Hat irgendein Operand den Wert
true, ist das Ergebnis true und die weiteren Operanden werden
nicht ausgewertet.
Die Optionsvariable prederror kontrolliert das Verhalten von or
für den Fall, dass ein Operand nicht zu true oder false
ausgewertet werden kann. or gibt eine Fehlermeldung, wenn
prederror den Wert true hat. Andernfalls werden Operanden
akzeptiert, die nicht zu true oder false ausgewertet werden
können und das Ergebnis ist ein boolescher Ausdruck.
or ist nicht kommutativ, da aufgrund von nicht ausgewerteten Operanden
die Ausdrücke a or b und b or a ein unterschiedliches Ergebnis
haben können.
Beispiele:
(%i1) n:2; (%o1) 2 (%i2) oddp(n) or evenp(n); (%o2) true (%i3) a=b or not(1=1) or integerp(2); (%o3) true (%i4) a or b; (%o4) a or b (%i5) prederror:true$ (%i6) a or b; Unable to evaluate predicate a -- an error. To debug this try: debugmode(true);
Da or nur so viele Operanden auswertet wie notwendig sind, um das
Ergebnis festzustellen, führt der syntaktische Fehler im zweiten Operanden
nicht zu einer Fehlermeldung, da das Ergebnis bereits mit dem ersten
Operanden feststeht.
(%i7) integerp(2) or sin(2,2); (%o7) true
Ist die logische Negation. not ist ein Prefix-Operator. Der Operand
ist ein boolescher Ausdruck und das Ergebnis ein boolescher Wert.
Der Operator not erzwingt die Auswertung des Operanden. Die
Optionsvariable prederror kontrolliert das Verhalten von not für
den Fall, dass der Operand nicht zu true oder false ausgewertet
werden kann. not gibt eine Fehlermeldung, wenn prederror den Wert
true hat. Andernfalls wird ein Operand akzeptiert, der nicht zu
true oder false ausgewertet werden kann, und das Ergebnis ist ein
boolescher Ausdruck.
Beispiele:
(%i1) not integerp(2); (%o1) false (%i2) not (a=b); (%o2) true (%i3) not a; (%o3) not a (%i4) prederror:true$ (%i5) not a; Unable to evaluate predicate a -- an error. To debug this try: debugmode(true);
Next: Operatoren für Gleichungen, Previous: Relationale Operatoren, Nach oben: Operatoren [Inhalt][Index]