अनुबन्ध
Translation status: हिन्दी reader-locale proof. Term names and code fences follow the hi pack; supporting prose may still be English.
Declares a behavioral contract with method signatures.
Aliases: interface
Syntax: अनुबन्ध <name> [<type-params>] <block>
Category#
type
Related#
Examples#
radix/corpus/implendum/implendum.fab (canonical · keyword)#
Declares a behavioral contract with method signatures.
# =============================================================================
# अनुबन्ध — Declares a behavioral contract with method signatures
# =============================================================================
#
# What this teaches:
# • Declares a behavioral contract with method signatures.
# • Related keywords: वर्ग, लागूकरता
#
# Common mistakes:
# • Declaring a `वर्ग लागूकरता Implendum` without implementing all required methods — every method signature in the अनुबन्ध must have a body in the वर्ग.
#
# See also: वर्ग, लागूकरता
# =============================================================================
# अनुबन्ध definition and implementation
#
# अनुबन्ध Nomen { फलन opus() → <type> }
# वर्ग Nomen लागूकरता Implendum { ... }
#
# GRAMMAR:
# implendumDecl :← 'अनुबन्ध' ident '{' methodSig* '}'
# genusDecl :← 'वर्ग' ident 'लागूकरता' ident '{' ... '}'
#
# EXPECTED OUTPUT:
# circulus radius: 25
# quadratum latus: 15
interface Figurabile {
fn depinge() → void
}
class Circulus implements Figurabile {
var int radius = 10
fn depinge() → void {
print "circulus radius: §"(self.radius)
}
}
class Quadratum implements Figurabile {
var int latus = 5
fn depinge() → void {
print "quadratum latus: §"(self.latus)
}
}
main {
const Circulus circulus ← Circulus { radius = 25 }
const Quadratum quadratum ← Quadratum { latus = 15 }
circulus.depinge()
quadratum.depinge()
}Expected output:
circulus radius: 25
quadratum latus: 15