Scheme_Object * scheme_eval(Scheme_Object *expr, Scheme_Env *env)
Evaluates the (uncompiled) S-expression expr in the environment env.
Scheme_Object * scheme_eval_compiled(Scheme_Object *obj, Scheme_Env *env)
Evaluates the compiled expression in the given environment.
Scheme_Object * scheme_apply(Scheme_Object *f, int c, Scheme_Object *args[])
Applies the procedure f to the given arguments.
Scheme_Object * scheme_apply_to_list(Scheme_Object *f, Scheme_Object *args)
Applies the procedure f to the list of arguments in args.
Scheme_Object * scheme_eval_string(char *str, Scheme_Env *env)
Reads an S-expression from str and evaluates it in the given environment.
Scheme_Object * scheme_tail_apply(Scheme_Object *f, int n, Scheme_Object *args[])
Applies the procedure as a tail-call. Actually, this function just registers the given application to be invoked when control returns to the evaluation loop.
Scheme_Object * scheme_tail_apply_no_copy(Scheme_Object *f, int n, Scheme_Object *args[])
Like scheme_tail_apply, but the array args is not copied. Use this only when args has infinite extent and will not be used again, or when args will certainly not be used again until the called procedure has returned.
Scheme_Object * scheme_tail_apply_to_list(Scheme_Object *f, Scheme_Object *l)
Applies the procedure as a tail-call.
Scheme_Object * scheme_tail_eval_expr(Scheme_Object *obj, Scheme_Env *env)
Tail-evaluates the given compiled expression. Actually, this function just registers the expression to be evaluated when control returns to the evaluation loop.
Scheme_Object * scheme_values(int n, Scheme_Object *args[])
Returns the given values together as multiple return values.
void scheme_rep()
Executes a read-eval-print loop, reading from scheme_stdin_port and writing to scheme_stdout_port. The current thread's environment is used.