Section 2
:
TSP Programming Fundamentals
Series 3700 System Switch/Multimeter Reference Manual
2-28
Document Number: 3700S-901-01 Rev. A / August 2007
Logical operators
The logical operators are and, or, and not. Like control structures, all logical operators consider
false and nil as false and anything else as true.
The operator and returns its first argument if it is false, otherwise it returns its second argument.
The operator or returns its first argument if it is not false; otherwise it returns its second
argument:
print(4 and 5)
print(nil and 13)
print(false and 13)
print(4 or 5)
print(false or 5)
Output of code above:
5
nil
false
4
5
Both
and
and
or
use short-cut evaluation, that is, they evaluate their second operand only when
necessary. A useful TSL construct is x = x or v, which is equivalent to:
if not x then x = v end
For example, it sets
x
to a default value
v
when
x
is not set (provided that x is not set to false).
To select the maximum of two numbers
x
and
y
, use the following statement (note the
and
operator has a higher precedence than
or
):
max = (x > y) and x or y
When x > y is true, the first expression of the and is true, so the and results in its second
argument x (which is also true, because it is a number), and then the
or
expression, results in the value of its first expression, x. When x > y is false, the
and
expression
is false and so are the
or
results in its second expression, y.
The operator
not
always returns true or false: