Conditions

if statement

The if statement executes statements based on some conditions.

Example

with console from std:io

if(a < 10)
    console.out("a is smaller than 10")
else if(a is 11)
    console.out("a is 11")
else if(a > 11 and a < 21)
    console.out("a is greater than 11 and smaller than 21")
else
    console.out("a is " + a)
end

An if block can contain multiple else if block.

Example

with console from std:io

if(condition)
    console.out("yes")
else if(otherCondition)
    console.out("maybe")
else if(otherOtherCondition)
    console.out("maybe not")
else
    console.out("no")
end

match block

The match block is similar to a switch block in C languages. Match cases accept lambdas as actions. If multiple match cases evaluate to true, the first match case is invoked, except if specified otherwise (with match all).

Example

with console from std:io

let fruit = "Apple"
var action lambda = { _ => 
    console.print("Variable is of type string")
}

match all(fruit)
    "Apple" => console.out("Apples are really tasty!")
    fruit.type() is :string => action
end

/*
Output: 
Apples are really tasty!
Variable is of type string
*/

match(fruit)
    "Apple" => { _ => console.out("Apples are really tasty!")}
    fruit.type() is :string => action
end

//Output: Apples are really tasty!

The match block is also able to filter objects and lists.

Example

with console from std:io

let person = Person("John", "Doe")
let list = {:ok, "Hello world"}

func doMatch(a)
    match(a)
        Person{firstName: "John"} =>
            console.out("Hello, John") //single operations can be written like so
        {:ok, msg} => console.out(msg)
    end
end

doMatch(person) //Output: Hello, John
doMatch(list) //Output: Hello world

Last updated