Renderingla

sit

Declares an inferred immutable local.

Syntax: sit <name> [← <expression>]

Category

binding

Related

Examples

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

Declares an inferred immutable local.

# sit — inferred immutable bindings
#
# Immediate init:
#   sit nomen ← expr        -- compact sugar for fixum _ nomen ← expr
#
# Deferred init:
#   sit nomen               -- compact sugar for fixum _ nomen (assign once later)
#   nomen ← expr
#
# Prefer sit when a block chains several inferred locals; keep fixum _ when
# teaching the explicit infer marker or mixing typed and inferred bindings.
#
# GRAMMAR:
#   sitDecl := 'sit' IDENTIFIER ('←' expression)?
#
# EXPECTED OUTPUT:
#   sit.expected

incipit {
    sit salve ← "Salve"
    sit nomen ← "Marcus"
    sit nuntius ← "§, §!"(salve, nomen)

    nota nuntius

    sit label
    label ← "deferred"
    nota label

    fixum _ idem ← nuntius
    nota idem
}

Expected output:

Salve, Marcus!
deferred
Salve, Marcus!