コード例 #1
0
ファイル: Environment.cs プロジェクト: tang-junjie/lispdotnet
        public LispNode Get(string sym)
        {
            if (Env.ContainsKey(sym))
            {
                return(Env[sym].GetNodeCopy());
            }

            if (parentEnv != null)
            {
                return(parentEnv.Get(sym));
            }

            return(new LispNotSymbolException(sym));
        }
コード例 #2
0
        public static LispNode Evaluate(LispEnvironment env, LispNode node)
        {
            if (node is InputSymbol)
            {
                return(env.Get(((InputSymbol)node).Symbol));
            }

            if (node is LispList)
            {
                return(EvaluateExpr(env, node));
            }

            return(node);
        }