Module fungi_lang::reduce[][src]

Reduction semantics.

This module gives the incremental semantics of Fungi programs as a "small-step" reduction function, reduce.

To do so, it uses an external library (Adapton in Rust) to create and maintain the "demanded computation graph" (the DCG), that underpins change propagation.

See also: eval.

Structs

Config

Configuration for reduction: A stack, environment and expression.

Frame

Stack frame

SysCfg

System configuration: global flags, etc

Enums

Cont

Local continuations

StepError

Cases for which step fails to reduce the program

Stuck

Dynamic type errors ("stuck cases" for reduction)

Functions

reduce

Perform reduction steps (via step) until irreducible.

reduce_db
step

Perform a single small-step reduction.

system_config