Dala Formula Language
The Dala Formula Language is a light weight language, that is heavily inspired by Excel and Google Sheets formulas, for example: SUM(1, 2, 3, 4, 5)
will yield 15
.
It is currently a work in progress.
Primitives
These primitive values are used as arguments and as return values from functions.
Primitive |
Description |
Syntax |
Str |
A string of characters enclosed by double quotes |
"Hello World" |
Num |
A number |
1 , 2.5 , 3.1415 |
Boolean |
A boolean value |
TRUE , FALSE |
EQ(a, b) -> Boolean
Description
Returns TRUE
if the arguments are equal, otherwise returns FALSE
.
Arguments
Name |
Description |
Type |
a |
The first argument to compare |
Str or Num or Boolean |
b |
The second argument to compare |
Str or Num or Boolean |
Return Value
Type |
Description |
Boolean |
The comparison result |
Example
EQ(1,1) -> TRUE
NEQ(a, b) -> Boolean
Description
Returns TRUE
if the arguments are different, otherwise returns FALSE
.
Arguments
Name |
Description |
Type |
a |
The first argument to compare |
Str or Num or Boolean |
b |
The second argument to compare |
Str or Num or Boolean |
Return Value
Type |
Description |
Boolean |
The comparison result |
Example
EQ(1,1) -> FALSE
CONCAT(a, b, c, ...) -> Str
Description
Concatenates all the arguments together into a single string.
Arguments
This function takes one or more arguments.
Non Str
arguments will be implictly converted to Str
, before being concatenated.
Name |
Description |
Type |
a |
The first string to concat |
Str or Num or Boolean |
b |
The second string to concat (optional) |
Str or Num or Boolean |
... |
The rest of the strings (optional) |
Str or Num or Boolean |
Return Value
Type |
Description |
Str |
All arguments concatenated as a single string |
Example
CONCAT("Hello", " ", "World") -> "Hello World"
DIVIDE(a, b) -> Num
Description
Divide the first argument by the second one.
Arguments
Name |
Description |
Type |
a |
The dividend |
Num |
b |
The divisor |
Num |
Return Value
Type |
Description |
Num |
The division result |
Example
DIVIDE(10, 2) -> 5
IF(condition, if_true, if_false) -> Literal
Description
If the condition is true, evaluates the if_true
, otherwise evaluates the if_false
.
Arguments
This function takes one or more arguments.
Non Str
arguments will be implictly converted to Str
, before being concatenated.
Name |
Description |
Type |
condition |
Boolean or function that returns a boolean |
Boolean |
if_true |
Evaluated if condition is TRUE |
Str or Num or Boolean |
if_false |
Evaluated if condition is FALSE |
Str or Num or Boolean |
Return Value
Type |
Description |
Str or Num or Boolean |
The result of evaluating the contents of either if_true or if_false |
Example
`IF(TRUE, "Hello", "World") -> "World"`
MULTIPLY(a, b) -> Num
Description
Multiplies the arguments.
Arguments
Name |
Description |
Type |
a |
The first argument |
Num |
b |
The second argument |
Num |
Return Value
Type |
Description |
Num |
The multiplication result |
Example
MULTIPLY(5, 2) -> 10
SUBTRACT(a, b) -> Num
Description
Subtract the second argument from the first one.
Arguments
This function takes one or more arguments.
Name |
Description |
Type |
a |
The first argument |
Num |
b |
The second argument |
Num |
Return Value
Type |
Description |
Num |
The subtraction result |
Example
SUBTRACT(1, 2) -> -1
SUM(a, b, c, ...) -> Num
Description
Sums all the arguments together.
Arguments
This function takes one or more arguments.
Name |
Description |
Type |
a |
The first number to sum |
Num |
b |
The second number to sum (optional) |
Num |
... |
The rest of the numbers to sum (option) |
Num |
Return Value
Type |
Description |
Num |
All arguments summed up |
Example
SUM(1, 2, 3, 4, 5) -> 15
UPPER(a) -> Str
Description
Converts the string to upper case.
Arguments
Non Str
arguments will be implictly converted to Str
, before being concatenated.
Name |
Description |
Type |
a |
The string to upper |
Str or Num or Boolean |
Return Value
Type |
Description |
Str |
The upper case str |
Example
UPPER("Hello World") -> "HELLO WORLD"