protected override void SetStepValues(LispEnvironment doEnv, List<Symbol> varSymbols, List<LispObject> varStepForms) { for (int i = 0; i < varSymbols.Count; i++) { var val = doEnv.Eval(varStepForms[i]); doEnv.SetValue(varSymbols[i], val); } }
public override LispObject Eval(Cons body, LispEnvironment env) { var symbol = Car.Of(body).As<Symbol>(); var value = env.Eval(Car.Of(Cdr.Of(body))); env.SetValue(symbol, value); return value; }
protected virtual void SetStepValues(LispEnvironment doEnv, List<Symbol> varSymbols, List<LispObject> varStepForms) { var stepValues = varStepForms.Select(doEnv.Eval).ToList(); for (int i = 0; i < varSymbols.Count; i++) { doEnv.SetValue(varSymbols[i], stepValues[i]); } }