Renderingla

varia

Declares a mutable binding.

Aliases: let, mutable

Syntax: varia <type|_> <pattern> [← <expression>]

Category

binding

Related

Examples

examples/corpus/varia/varia.fab (canonical · keyword)

Declares a mutable binding.

# Mutable and immutable variable declarations
#
# varia <nomen> ← <expr>   -- mutable binding (may reassign)
# fixum <nomen> ← <expr>   -- immutable binding (see fixum/fixum.fab)
#
# GRAMMAR:
#   bindingStmt :← ('varia' | 'fixum') type? ident '←' expr
#
# EXPECTED OUTPUT:
#   0, 1, 11, "Salve, Mundus!", 30, "Vale"

incipit {
    # --- Mutable bindings with varia ---

    varia _ computus ← 0
    nota computus

    computus ← 1
    nota computus

    computus ← computus + 10
    nota computus

    # --- Immutable bindings: fixum _ and sit ---

    fixum _ salutatio ← "Salve, Mundus!"
    nota salutatio

    # sit compresses repeated fixum _ when chaining inferred locals
    sit x ← 10
    sit y ← 20
    sit summa ← x + y
    nota summa

    # --- Reassign only varia bindings ---

    varia _ nuntius ← "Salve"
    nuntius ← "Vale"
    nota nuntius
}

Expected output:

0
1
11
Salve, Mundus!
30
Vale