public LispFunction(LispList parameters, LispElement body, LispEnvironment funcEnv, LispSymbol funcName) { this.parameters = parameters; this.body = body; this.funcName = funcName; this.funcEnv = (LispEnvironment)funcEnv.Clone(); }
public LispElement Lookup(LispSymbol symbol) { if (env.ContainsKey(symbol)) { return(env[symbol]); } else if (Parent != null) { return(Parent.Lookup(symbol)); } else { return(null); } }
public void Add(LispSymbol symbol, Func <LispList, LispEnvironment, dynamic> func) { Add(symbol, func, symbol.ToString()); }
public void Add(LispSymbol symbol, Func <LispList, LispEnvironment, dynamic> func, string alias) { env[symbol] = new LispBuiltInFunction(func, alias); }
public void Add(LispSymbol symbol, LispElement element) { env[symbol] = element; }