रेंडरिंगhi

गढ़ो

Translation status: हिन्दी reader-locale proof. Term names and code fences follow the hi pack; supporting prose may still be English.

Constructs a tagged union variant.

Syntax: गढ़ो <variant> [{ <field> = <expr>, ... }] [∷ <type>]

Category#

object

Examples#

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

Constructs a tagged union variant.

# =============================================================================
# गढ़ो — Constructs a tagged union variant
# =============================================================================
#
# What this teaches:
#   • Constructs a tagged union variant.
#   • Related keywords: विभेद
#
# Common mistakes:
#   • Constructing a variant with the wrong field names — `गढ़ो Varians { field = expr } ∷ DiscretioNomen` must match the variant's declared fields exactly.
#
# See also: विभेद
# =============================================================================

# गढ़ो — variant construction expressions
#
# गढ़ो Varians { … } ∷ DiscretioNomen
#
# GRAMMAR:
#   variantExpr :← 'गढ़ो' variantName (fieldInitBlock)? '∷' typeName
#
# EXPECTED OUTPUT:
#   गढ़ो 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