# What are Formulas?

Tabula's formula language has a lot to offer, with hundreds of functions quite similar to your favorite ones in Excel and SQL. Formulas can be as simple as a single number or as complex as a function call or mathematical formula.&#x20;

### Operators

* Regular math operators: `+`, `-`, `*`,`/`,`%`
* Comparison operators (evaluate to booleans): `>`, `>=`, `<`, `<=`, `==`, `!=`, `<>`. These are used to compare two values and produce a boolean result (true or false).
* Logical operators: `!` , `&&` , `||` (also support `not`, `and`, `or` variation). These operators are used to manipulate boolean values.
* String concatenation operators: `|` . This is used to combine two or more strings into one.

### Expressions

* Literal: represents a fixed value, like a <mark style="color:orange;">number</mark>, <mark style="color:green;">"string"</mark>, boolean (<mark style="color:purple;">true</mark>, <mark style="color:purple;">false</mark>), or a <mark style="background-color:blue;">reference</mark>.
* Unary: composed of a single operand and an operator. The operator can precede the operand `-expression`, `!expression`
* Binary: consists of two operands and an operator `expression`` `*`operator`*` ``expression`.
* Grouping: expressions can be grouped using parentheses **`(`**`expression`**`)`** to control the precedence of evaluation.

### References

References in expressions can be made to:

* Column by name: this allows for operations on specific columns in a data table.
* REGEX Path to values in the specified columns: this allows for complex data manipulation using regular expressions.
* Constants and enums: these can be used as parameters in functions.
