Version: v0.8.1 - Beta.  We welcome contributors & feedback.

Math & Logic

Math Operators 

You can modify numbers by using the math operators + - * /.

Expressions can be grouped together with parentheses ( ).

$numPosts = 2 + 3
$numUpvotes = 10

$numKarma = ($numPosts * 2) + numUpvotes
//= 20

Combined Operators

Math operators can be combined with the = operator, as an easy way to modify the current variable.

$numKarma = 5
$numKarma += 2  //= 7

// same as...
$numKarma = $numKarma + 2

// More examples
$a += 2  // $a = $a + 2
$a -= 2  // $a = $a - 2
$a *= 2  // $a = $a * 2
$a /= 2  // $a = $a / 2

Comparison Operators 

Comparison operators compare two values, and return true or false.

// equal
1 == 1  //= true
1 == 2  //= false

// not equal
1 != 5  //= true
2 != 2  //= false

// greater/less than
2 > 1  //= true
1 < 5  //= true

// equal or greater/less than
2 >= 2  //= true
2 <= 0  //= false

// strings
'red' == 'red'   //= true
'red' != 'blue'  //= true
'red' == 'red '  //= false (extra space)
'red' == 'Red'   //= false (not exact case)


// different types are not equal
'0' == 0        //= false
'true' == true  //= false

Conditional Statements 

if Statement

The if statement executes a block of code if the condition is true.

A block of code is surrounded by curly braces { }.

if condition {
    // code to run if condition is true
}

For example:

if $numCats > 100 {
    print('It`s a cat-astrophe!')
}

if / else Statement

The else statement executes a block of code if the condition is false.

if condition {
    // code if condition is true
}
else {
    // code if condition is false
}

Example:

$numGoldCoins = 30
$tubaPrice = 33

if $numGoldCoins >= $tubaPrice {
    print('You can buy the tuba! :)')
}
else {
    $needNumCoins = $tubaPrice - $numGoldCoins
    print('You need ' ~ $needNumCoins ~ ' more gold coins.')
}

//= 'You need 3 more gold coins.'

else if Statement

The else and if statements can be chained together.

Each condition is checked from top to bottom. Only the first true condition will be run.

if condition1 {
    ...
}
else if condition2 {
    ...
}
else if condition3 {
    ...
}
else {
    // if all above conditions are false
}

Example:

$score = 800
$highScore = 1000

if $score > $highScore {
    print('You set a new high score! :)')
}
else if $score == 0 {
    print('Worst score ever. :(')
}
else {
    print('Try again. :|')
}

//= 'Try again. :|'

Logical Operators ||, && 

Logical operators let you join comparison operators.

Operator Name Description
&& AND BOTH conditions must be true
|| OR EITHER condition must be true
// And...
if $ageYears < 13 && $movieType == 'horror' {
    print('This movie is too scary for you.')
}

// Or...
if $heightCm < 120 || $isAfraidOfHeights {
    print('Do not enter this ride!')
}

Grouping

When mixing AND and OR expressions, use parens (...) to eliminate ambiguity.

Example:

if $isAtRestaurant && ($hasReservation || $isFamous) {
    print('You may enter the restaurant.')
}

NOT operator !

Precede an expression with ! to convert true to false and vice versa.

if !$hasMagicShield {
    print('The dragon eats you!')
}

Avoid negatives in your variable names, which can result in confusing double-negatives, which in turn can often lead to bugs.

// ✕ AVOID THIS

if !$isNotEmployee {
    print('Employee discount!')
}

Truthy/Falsey Values

As a shortcut, you can use a standalone value in place of a Boolean expression.

The following empty values are treated as false, and everything else is true:

Type Empty/False Value
Boolean false
Number 0
String ''
List []
Map {}
Object null

Examples:

// Boolean
$isLoggedIn = true
if $isLoggedIn {
    print('Welcome back!')
}

// Number
$numPosts = 0
if !$numPosts {
    print('Nothing here!')
}

// String
$name = 'Tai'
if $name {
    print('Welcome back, ' ~ $name)
}

// Lists
$replies = []
if $replies {
    print($posts.length() ~ ' replies')
}