Renderingla

unarius

Unary negation, logical not, sign comparisons, and optional presence tests.

Syntax: -<expr> | non <expr> | <expr> > 0 | <expr> est nihil

Category

operators

Related

Examples

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

Unary negation, logical not, sign comparisons, and optional presence tests.

# unarius — negation, logical not, sign comparisons, and optional presence
#
# -<expr>  non <bivalens>  <expr> > 0  <expr> < 0
# <expr> est nihil   <expr> non est nihil
#
# GRAMMAR:
#   unaryExpr :← ('-' | 'non') expr
#
# EXPECTED OUTPUT:
#   unarius.expected — unary operator samples.

incipit {
    # Numeric negation
    fixum _ x ← 5
    fixum _ neg ← -x
    # -5
    nota neg

    # Logical negation
    fixum _ flag ← verum
    fixum _ non_signum ← non flag
    # falsum
    nota non_signum

    # Positive/negative checks
    fixum _ a ← 10
    fixum _ b ← -3
    # verum
    nota a > 0
    # falsum
    nota a < 0
    # falsum
    nota b > 0
    # verum
    nota b < 0

    # Null checks
    fixum textus ∪ nihil forsitan ← nihil
    # verum
    nota forsitan est nihil
    # falsum
    nota forsitan non est nihil

    fixum textus ∪ nihil adest ← "salve"
    # falsum
    nota adest est nihil
    # verum
    nota adest non est nihil
}

Expected output:

-5
falsum
verum
falsum
falsum
verum
verum
falsum
falsum
verum