public (IObject, bool) Get(string name) { if (_store.ContainsKey(name)) { return(_store[name], true); } if (!_store.ContainsKey(name) && _outer != null) { return(_outer.Get(name)); } return(null, false); }
private IObject EvalIdentifier(Identifier identifier, Environment env) { if (BuiltIns.BuiltInFunctions.ContainsKey(identifier.Value)) { var builtin = BuiltIns.BuiltInFunctions[identifier.Value]; return(builtin); } var(val, ok) = env.Get(identifier.Value); if (!ok) { return new Error() { Message = $"identifier not found: {identifier.Value}" } } ; return(val); }