Tour

June 23, 2026 ยท View on GitHub

Hello World

println('Hello World')

Assignment

Import, Functions

import org.bau.DateTime

fun printTime()
    println(DateTime.getNanoTime())

printTime()

Random

import org.bau.Utils

println(Utils.random())

Math

import org.bau.Math

println('Pi: ' Math.PI)
println(Math.sqrt(2))

Functions

fun add(x int, y int) int
    return x + y

println(add(42 1))

Data Types

fun main()
    a := 10_000_000
    b := i8(110)
    c := i16(65000)
    d : 'text'
    e := 3.1416
    f := 0..10
    println(a ' ' b)

Type Conversion

a := 10_000_000
b := 3
if b <> 0
    println(a / b)
    println(float(a) / b)

Constants

PI : 3.1415
println(PI)

Loops

sum := 1
loop sum < 10_000
    sum += sum
println(sum)

For Loops

sum := 0
for i := range(0, 10)
    sum += i
println(sum)

If

for i := range(1, 10)
    if i < 5
        println(i)

If Else

for i := range(1, 10)
    if i < 5
        println(i)
    else
        println(-i)

If Elif Else

for i := range(1, 10)
    if i == 0
        println('zero')
    elif i == 1
        println('one')
    elif i == 2
        println('two')
    else
        println('many')

Switch

import org.bau.Utils

for i := range(1, 10)
    switch Utils.random() & 7
    case 0
        println('zero')
    case 1
        println('one')
    case 2, 3
        println('2 or 3')
    else  
        println('other') 

Types

type point
    x int
    y int

p := point()
p.x = 10
p.y = 20

Arrays

array : i8[10]
for i := until(array.len)
    array[i] = i

List

import org.bau.List
    List
    newList

list := newList(int)
list.add(100)
list.add(80)
println(list.size)
println(list.array[0])

Enum

enum weekday
    sunday
    monday
    tuesday
    wednesday
    thursday
    friday
    saturday

for a := until(weekday.saturday + 1)
    switch a
    case weekday.sunday
        println('sunday')
    case weekday.monday
        println('monday')
    else
        println('some other day: #' a)

Macros and Ternary Condition

fun macro when(cond int, a T, b T) T
    if cond
        return a
    else
        return b

for i := until(3)
    println(i ':', when(i, '>0', 'zero'))

Custom For Loops

fun main()
    for x := primesUntil(30)
        println('prime: ' x)

fun for primesUntil(until int) int
    _ := 2
    while
        _ += 1 + (_ & 1)
        break _ > until
        if not isPrime(_)
            continue 
        return _

fun isPrime(x int) int
    if (x & 1) == 0
        return 0
    i := 3
    while i * i <= x
        if i <> 0
            if x % i == 0
                return 0
        i += 2
    return 1

Function Pointer Callback

fun compareAbsolute(a int, b int) int
    if a < 0
        a = -a
    if b < 0
        b = -b
    return a - b

fun insertionSort(a int[], comp fun(int, int) int)
    for i := range(1, a.len)
        t := a[i]
        j := i - 1
        while j >= 0 and comp(a[j], t) > 0
            a[j + 1] = a[j]
            j -= 1
        a[j + 1] = t

fun main()
    array : int[5]
    array[0] = -5
    array[1] = 6
    array[2] = 2
    array[3] = -10
    array[4] = 1
    insertionSort(array, compareAbsolute)
    for i := until(array.len)
        println(i ': ' array[i])