public Enviroment ExtendEnviroment(FunctionObject fn, List <IObject> args) { var enviroment = Enviroment.CreateNewEnclosedEnviroment(fn.Enviroment); for (int i = 0; i < fn.Parameters.Count; i++) { enviroment.Set(fn.Parameters[i].Value, args[i]); } return(enviroment); }