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)); }
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); }
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); }
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); }
protected override Datum eval(Datum arg1, Datum arg2) { return(DatumHelpers.cons(arg1, arg2)); }