Renderingla

vel

Provides a default when the left side is null.

Aliases: nullish coalescing

Syntax: <expression> vel <expression>

Category

logic

Related

Examples

examples/corpus/vel/vel.fab (canonical · operator-group)

Provides a default when the left side is null.

# vel — nullish coalescing (not logical OR)
#
# <expr> vel <expr>   -- right side only when left is nihil
#
# GRAMMAR:
#   coalesceExpr :← expr 'vel' expr
#
# EXPECTED OUTPUT:
#   ignotus, Marcus, 0, false, defectum, inventum (vel.expected).

incipit {
    # Basic nihil coalescing
    fixum textus ∪ nihil nomen ← nihil
    sit ostensum ← nomen vel "ignotus"
    # "ignotus"
    nota ostensum

    # With present value
    fixum textus ∪ nihil adest ← "Marcus"
    sit ostensum2 ← adest vel "ignotus"
    # "Marcus"
    nota ostensum2

    # Difference from logical aut: vel only checks nihil
    sit nihilum ← 0
    sit vacuus ← ""
    sit falsus2 ← falsum

    # vel preserves non-nihil values
    # 0
    nota nihilum vel 999
    # ""
    nota vacuus vel "defectum"
    # falsum
    nota falsus2 vel verum

    sit alter ← nomen vel "defectum"
    nota alter

    # Chaining
    fixum textus ∪ nihil a ← nihil
    fixum textus ∪ nihil b ← nihil
    fixum textus ∪ nihil c ← "inventum"
    sit primum ← a vel b vel c vel "nihil"
    # "inventum"
    nota primum
}

Expected output:

ignotus
Marcus
0

falsum
defectum
inventum