public Continuation Perform(Continuation c)
            {
                var argResults = DatumHelpers.nil;

                for (var i = 0; i < argCount; ++i)
                {
                    argResults = DatumHelpers.cons(c.Result, argResults);
                    c          = c.PopResult();
                }
                return(function.Evaluate(c, argResults));
            }
Esempio n. 2
0
        private static Datum getTaskDescriptions(Datum arg)
        {
            var c     = asContinuation(arg);
            var stack = DatumHelpers.nil;

            while (c.Task != null)
            {
                stack = DatumHelpers.cons(c.Task.ToString().ToAtom(), stack);
                c     = c.PopTask();
            }
            return(stack);
        }
Esempio n. 3
0
        private static Datum getPendingResults(Datum arg)
        {
            var c     = asContinuation(arg);
            var stack = DatumHelpers.nil;

            while (c.Result != null)
            {
                stack = DatumHelpers.cons(c.Result, stack);
                c     = c.PopResult();
            }
            return(stack);
        }
Esempio n. 4
0
        private static Datum getEnvironments(Datum arg)
        {
            var c     = asContinuation(arg);
            var stack = DatumHelpers.nil;

            while (c.Env != null)
            {
                stack = DatumHelpers.cons(c.Env.ToAtom(), stack);
                c     = c.PopEnv();
            }
            return(stack);
        }
Esempio n. 5
0
 protected override Datum eval(Datum arg1, Datum arg2)
 {
     return(DatumHelpers.cons(arg1, arg2));
 }