Forces compile-time evaluation of an expression.
Syntax: praefixum(<expression>)
Category
comptime
Related
None.
Examples
examples/corpus/praefixum/praefixum.fab (canonical · keyword)
Forces compile-time evaluation of an expression.
# praefixum — compile-time constant evaluation
#
# praefixum(<expr>) -- fold a single expression at compile time
# praefixum { … } -- fold a block literal at compile time
#
# GRAMMAR:
# constExpr :← 'praefixum' '(' expr ')'
# constBlock :← 'praefixum' block
#
# EXPECTED OUTPUT:
# pi/tau strings, computed day/hour/second counts, block-evaluated sum.
incipit {
# Constant expression
fixum _ pi ← praefixum(3.14159)
fixum _ tau ← praefixum((2 ↦ fractus) * 3.14159)
nota "pi: §"(pi)
nota "tau: §"(tau)
# Computation
fixum _ diesanno ← praefixum(365)
fixum _ horaeanno ← praefixum(365 * 24)
fixum _ secundaanno ← praefixum(365 * 24 * 60 * 60)
nota "dies: §"(diesanno)
nota "horae: §"(horaeanno)
nota "secunda: §"(secundaanno)
# Block
fixum tabula<textus, numerus> codices ← praefixum({
"ok": 200,
"creatum": 201,
"noninventum": 404,
"error": 500
})
nota "codex rectus: §"(codices["ok"])
}Expected output:
pi: 3.14159
tau: 6.28318
dies: 365
horae: 8760
secunda: 31536000
codex rectus: 200