Skip to main content

eval_letrec

Function eval_letrec 

Source
pub fn eval_letrec(
    cx: &mut Cx,
    outer: &LexicalEnv,
    bindings: Vec<(Symbol, BindingInitializer)>,
    body: impl FnOnce(&mut Cx, &LexicalEnv) -> Result<Value>,
) -> Result<Value>
Expand description

Evaluates a letrec form: mutually recursive bindings in a child scope.

All names are predefined before any initializer runs, so each BindingInitializer may reference every binding in the frame (including itself and later ones), enabling mutual recursion.