Kết xuấtvi

finge

Translation status: Tiếng Việt reader-locale proof. Code fences render through the vi pipeline; prose is canonical Latin.

Constructs a tagged union variant.

Syntax: finge <variant> [{ <field> = <expr>, ... }] [∷ <type>]

Category#

object

Examples#

radix/corpus/finge/finge.fab (canonical · keyword)#

Constructs a tagged union variant.

# =============================================================================
# finge — Constructs a tagged union variant
# =============================================================================
#
# What this teaches:
#   • Constructs a tagged union variant.
#   • Related keywords: discretio
#
# Common mistakes:
#   • Constructing a variant with the wrong field names — `finge Varians { field = expr } ∷ DiscretioNomen` must match the variant's declared fields exactly.
#
# See also: discretio
# =============================================================================

# finge — variant construction expressions
#
# finge Varians { … } ∷ DiscretioNomen
#
# GRAMMAR:
#   variantExpr :← 'finge' variantName (fieldInitBlock)? '∷' typeName
#
# EXPECTED OUTPUT:
#   finge expressiones paratae

# --- Discretio types to construct ---

union Condicio {
    Agens,
    Iners,
    Pendens
}

union Nuntius {
    Pulsus { int x, int y },
    Clavis { string clavis },
    Finis
}

union Responsum {
    Bonum { string nuntius },
    Malum { string causa }
}

main {
    # --- Unit variants with explicit type ---

    const Condicio s1  variant Agens ∷ Condicio
    const Condicio s2  variant Pendens ∷ Condicio

    # --- Payload variants with explicit type ---

    const Nuntius e1  variant Pulsus { x = 100, y = 200 } ∷ Nuntius
    const Nuntius e2  variant Clavis { clavis = "intro" } ∷ Nuntius
    const Nuntius e3  variant Finis ∷ Nuntius

    # --- Responsum variants ---

    const Responsum r1  variant Bonum { nuntius = "opus perfectum" } ∷ Responsum
    const Responsum r2  variant Malum { causa = "opus fractum" } ∷ Responsum

    print "finge expressiones paratae"
}

Expected output:

finge expressiones paratae