Operation  Returned type  result 
int + int

int

the sum of the two values

float + int
int + float
float + float

float

the sum of the two values

string + string
int + string
float + string
string + int
string + float

string

In this case, any int or float is first converted to a string. Then
the two strings are concatenated and the resulting string is
returned.

array + array

array

The two arrays are concatenated into a new array and that new array
is returned.

mapping + mapping

mapping

A mapping with all the indexvalue pairs from both mappings is
returned. If an index is present in both mappings the indexvalue pair
from the right mapping will be used.

multiset + multiset

multiset

A multiset with all the members from both multisets is
returned.

int  int

int

The right value subtracted from the left.

float  int
int  float
float  float

float

The right value subtracted from the left.

string  string

string

A copy of the left string with all occurrences of the right string
removed.

array  array

array

A copy of the right array with all elements present in the right
array removed. Example: ({2,1,4,5,3,6,7})  ({3,5,1}) will
return ({2,4,6,7}).

mapping  mapping

mapping

A new mapping with all indexvalue pairs from the left mapping,
except those indexes that are also present in the right mapping.

multiset  multiset

multiset

A copy of the left multiset without any member present in the left
multiset.

 int

int

Same as 0  int.

 float

float

Same as 0  float.

int * int

int

the product of the two values

float * int
int * float
float * float

float

the product of the two values

array(string) * string

string

All the strings in the array are concatenated with the string on
the right in between each string. Example: ({"foo,"bar})*""
will return "foobar".

int / int

int

The right integer divided by the left integer rounded towards minus
infinity.

float / int
int / float
float / float

float

The right value divided by the left value.

string / string

array(string)

In symmetry with the multiplication operator, the division operator
can split a string into pieces. The right string will be split at
every occurrence of the right string and an array containing the
results will be returned. Example: "foobar"/"" will return
({"foo","bar"})

int % int

int

The rest of a division. If a and b are integers,
a%b is the same as a(a/b)*b

float % float
int % float
float % int

float

The rest of a division. If a and b are floats,
a%b is the same as afloor(a/b)*b
