finge
Translation status: 繁體中文 reader-locale proof. Code fences render through the zh-Hant pipeline; prose is canonical Latin.
Constructs a tagged union variant.
Syntax: finge <variant> [{ <field> = <expr>, ... }] [∷ <type>]
Category#
object
Related#
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