CUE supports common arithmetic and boolean operators, which apply to its
numerical types int, float, and number.
Some of these operators also apply to the string and bytes types.
CUE provides three different division operations.
To produce a float, CUE supports the infix / operator with the standard
mathematical meaning.
Arguments can be float, int, or a mixture of the two.
CUE also provides
built-in functions
that produce an int by calculating integer division and remainder.
They support Euclidean division (div / mod) and truncated division (quo / rem).
operators.cue
a: 1 + 1 // type int
b: "xxx" + "OOO" // type string
c: 2 * 2 // type int
d: 2 * 2.0 // type float
e: 3.14159 - 0.14159 // type float
f: 6 / 2 // type: float
g: 6.0 / 2.0 // type: float
h: 1 <= 2.0 // type bool
i: 3.0 > 3 // type bool
// String types are compared lexically byte-wise
j: "aaa" >= "ZZZ" // type bool
k: div(10, 3) // type int
l: mod(10, 3) // type intTERMINAL
$ cue eval operators.cue
a: 2
b: "xxxOOO"
c: 4
d: 4.0
e: 3.00000
f: 3.0
g: 3.0
h: true
i: false
j: true
k: 3
l: 1The CUE languge specification details the operator precedence levels.