Built-in operators
This page describes the built-in operators:
The signatures of the operators are given using tool headers, to show the name of the operator, the types of the arguments, and the type of the resulting value. Operators however, can not be used by means of tool invocations. Operators with one argument are put directly before the argument (e.g. not true
, -5
), while operators with two arguments are put between the arguments (e.g. true and false
, 1 + 3
).
not operator
tool bool not(bool arg)
Returns the logical inverse of a boolean value.
Arguments
-
arg
-
The boolean value.
Returns
The logical inverse result.
and operator
tool bool and(bool left, bool right)
tool set T and<T>(set T left, set T right)
Returns the conjunction of two boolean values, or the intersection of two sets. For boolean values, the operator uses short circuit evaluation. That is, the right
argument is only evaluated if necessary, i.e. only if the left
argument evaluates to true
.
Type parameters
-
T
-
The type of the elements of the set.
Arguments
-
left
-
The first boolean value or set.
-
right
-
The second boolean value or set.
Returns
The conjunction or intersection result.
or operator
tool bool or(bool left, bool right)
tool set T or<T>(set T left, set T right)
Returns the disjunction of two boolean values, or the union of two sets. For boolean values, the operator uses short circuit evaluation. That is, the right
argument is only evaluated if necessary, i.e. only if the left
argument evaluates to false
.
Type parameters
-
T
-
The type of the elements of the set.
Arguments
-
left
-
The first boolean value or set.
-
right
-
The second boolean value or set.
Returns
The disjunction or union result.
+ operator (unary)
tool int +(int arg)
tool long +(long arg)
tool double +(double arg)
Returns the unary plus of an integer, long, or double value. This is essentially the identity function.
Arguments
-
arg
-
The integer, long, or double value.
Returns
The integer, long, or double value.
+ operator (binary)
tool int +(int left, int right)
tool long +(long left, long right)
tool double +(double left, double right)
tool string +(string left, string right)
tool list T +<T>(list T left, list T right)
tool map(K:V) +<K, V>(map(K:V) left, map(K:V) right)
Returns the addition of two integer, long, or double numbers, the concatenation of two strings or lists, or the update of a first map with the entries of a second map. For two maps, essentially, the entries of the first map are overwritten by the entries of the second map, while entries for new keys are added.
Type parameters
-
T
-
The type of the elements of the list.
-
K
-
The type of the keys of the map.
-
V
-
The type of the values of the map.
Arguments
-
left
-
The first integer, long, or double number, string, list, or map.
-
right
-
The second integer, long, or double number, string, list, or map.
Returns
The addition, concatenation, or map update result.
Runtime errors
If the operation results in overflow (for integer, long, and double numbers only).
- operator (unary)
tool int -(int arg)
tool long -(long arg)
tool double -(double arg)
Returns the negation of an integer, long, or double value.
Arguments
-
arg
-
The integer, long, or double value.
Returns
The negation result.
Runtime errors
If the operation results in overflow.
- operator (binary)
tool int -(int left, int right)
tool long -(long left, long right)
tool double -(double left, double right)
tool set T -<T>(set T left, set T right)
tool map(K:V) -<K, V>(map(K:V) left, list K right)
tool map(K:V) -<K, V>(map(K:V) left, set K right)
tool map(K:V) -<K, V, V2>(map(K:V) left, map(K:V2) right)
Returns the subtraction of two integer, long, or double numbers, the set difference of two sets, the map with the keys from the list removed from it, the map with the keys from the set removed from it, or the first map with the keys from the second map removed from it.
Type parameters
-
T
-
The type of the elements of the list.
-
K
-
The type of the keys of the map.
-
V
-
The type of the values of the map.
Arguments
-
left
-
The first integer, long, or double number, the first set, or the (first) map.
-
right
-
The second integer, long, or double number, the (second) set, the list, or the second map.
Returns
The subtraction, set difference, or map removal result.
Runtime errors
If the operation results in overflow (for integer, long, and double numbers only).
* operator
tool int *(int left, int right)
tool long *(long left, long right)
tool double *(double left, double right)
Returns the multiplication of two integer, long, or double numbers.
Arguments
-
left
-
The first integer, long, or double number.
-
right
-
The second integer, long, or double number.
Returns
The multiplication result.
Runtime errors
If the operation results in overflow.
/ operator
tool double /(double left, double right)
Returns the division of two double numbers.
Arguments
-
left
-
The first double number.
-
right
-
The second double number.
Returns
The division result.
Runtime errors
If the operation results in overflow or division by zero.
div operator
tool int div(int left, int right)
tool long div(long left, long right)
Returns the integer division of two integer or long numbers.
Arguments
-
left
-
The first integer or long number.
-
right
-
The second integer or long number.
Returns
The integer division result.
Runtime errors
If the operation results in overflow or division by zero.
mod operator
tool int mod(int left, int right)
tool long mod(long left, long right)
Returns the modulus of two integer or long numbers.
Arguments
-
left
-
The first integer or long number.
-
right
-
The second integer or long number.
Returns
The modulus result.
Runtime errors
If the operation results in division by zero.
< operator
tool bool <(int left, int right)
tool bool <(long left, long right)
tool bool <(double left, double right)
Returns whether the first integer, long, or double number is less than the second integer, long, or double number.
Arguments
-
left
-
The first integer, long, or double number.
-
right
-
The second integer, long, or double number.
Returns
true
if the first number is less than the second number, false
otherwise.
<= operator
tool bool <=(int left, int right)
tool bool <=(long left, long right)
tool bool <=(double left, double right)
Returns whether the first integer, long, or double number is less than or equal to the second integer, long, or double number.
Arguments
-
left
-
The first integer, long, or double number.
-
right
-
The second integer, long, or double number.
Returns
true
if the first number is less than or equal to the second number, false
otherwise.
> operator
tool bool >(int left, int right)
tool bool >(long left, long right)
tool bool >(double left, double right)
Returns whether the first integer, long, or double number is greater than the second integer, long, or double number.
Arguments
-
left
-
The first integer, long, or double number.
-
right
-
The second integer, long, or double number.
Returns
true
if the first number is greater than the second number, false
otherwise.
>= operator
tool bool >=(int left, int right)
tool bool >=(long left, long right)
tool bool >=(double left, double right)
Returns whether the first integer, long, or double number is greater than or equal to the second integer, long, or double number.
Arguments
-
left
-
The first integer, long, or double number.
-
right
-
The second integer, long, or double number.
Returns
true
if the first number is greater than or equal to the second number, false
otherwise.
== operator
tool bool ==<T>(T left, T right)
Returns whether the first value is equal to the second value.
Type parameters
-
T
-
The type of the values.
Arguments
-
left
-
The first value. May be
null
. -
right
-
The second value. May be
null
.
Returns
true
if the first value is equal to the second value, false
otherwise.
!= operator
tool bool !=<T>(T left, T right)
Returns whether the first value is unequal to the second value.
Type parameters
-
T
-
The type of the values.
Arguments
-
left
-
The first value. May be
null
. -
right
-
The second value. May be
null
.
Returns
true
if the first value is unequal to the second value, false
otherwise.