Swipe to copy
You can swipe heading to copy link or swipe codeblock to copy its contents.
Expressions

Data type literals can be combined using operators, but these operators only function with values of the same data type. For example, attempting to add a Text value to a Num value will result in an error, as this is an unsupported operation. To combine different types of values into a single text, consider using string interpolation instead.

Addition Operator +

Addition can be performed on number, text and array. This operator applied on different data types yields different results:

  • Num - Arithmetic sum
  • Text - String concatenation
  • [] - Array join
12 + 42 // 54
"Hello " + "World!" // "Hello World!"
[1, 2] + [3, 4] // [1, 2, 3, 4]

Arithmetic Operations

Arithmetic operations can only be used on Num data type. Here is the list of all available ones:

  • + Arithmetic sum
  • - Substraction
  • * Multiplication
  • / Division
  • % Modulo operation
((12 + 34) * 9) % 4

There is also an unary operator that negates the value stored in variable.

let value = 12
echo -value // Outputs: -12

Comparison Operations

The equality == and inequality != operations can be applied to any data type as long as both sides have the same type.

"foo" != "bar"
42 == 42
true != false
"equal" == "equal"

The remaining comparison operations can only be used on the Num data type. These are basically the same as in other modern programming languages: >, <, >=, <=.

42 != 24

Logical Operations

Logical operations can only be used on Bool data type. As opposed to C-like family of programming languages we've chosen to go for more Pythonic approach with literal names instead of symbols, as it suits the nature of the scripting programming language better: and, or, not.

18 >= 12 and not false

Shorthand Operator

The addition operator, along with any arithmetic operator combined with the = symbol, can be used to automatically update the value of an existing variable with the calculated result.

let age = 18
age += 5
echo age // Outputs: 23

Text Interpolation

Text interpolation is a form of embedding various values into the text literal that are combined with their textual representations.

echo "State: {false}" // Outputs: "State: 0"
// It's possible to also nest interpolation
echo "1 {" 2 {"3"} 4"} 5" // Outputs: "1 2 3 4 5"

In the following table we can see how the interpolation behaves for various data types:

Type Description Before After
Text Identity "{"Text"}" "Text"
Num Identity "{12.34}" "12.34"
Bool 1 or 0 "{true}" "1"
[] Spaces between values "{[1, 2, 3]}" "1 2 3"
let name = "John"
let age = 18
echo "Hi, I'm {name}. I'm {age} years old."
// Outputs: Hi, I'm John. I'm 18 years old