Module fungi_lang::dynamics
source · Expand description
Syntax for dynamic, evaluation-time structures.
Notably, some of these syntantic forms are absent from programs written by the programmer; rather, they only arise dynamically, from running these programs, and in some cases, by using Adapton engine.
However, since they are common to multiple operational semantics
(eval
and reduce
), we separate these dynamic structures from any
one particular evaluation semantics.
For practical reasons, these AST structures still must be mentioned in
the static structure. Namely, the Exp::HostEval
form holds a
function over these types, providing a “trapdoor” for libraries to
extend the core evaluation rules below with custom ones (e.g., for
standard library primitives, such as vectors).
See also: The ExpTerm type.
Structs
Enums
Functions
ast
value (with zero or
more variables) producing a closed, run-time value.close_val
ast
name into a run-time (adapton
library) name.normal
module)normal
module)M
in the following nameterm (lambda) form:Ret
constructor.