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