# Eval Library The `(scheme eval)` library exports procedures for evaluating Scheme data as programs. For more information see the [R7RS Scheme Specification](../../r7rs.pdf). - [`eval`](#eval) - [`create-environment`](#create-environment) - [`setup-environment`](#setup-environment) - [`expand`](#expand) # eval (eval expr . environment) Evaluate `expr` in the specified environment and return the resulting value(s). A non-standard extension is provided to supply a default global environment if the `environment` argument is not specified. # create-environment (create-environment vars values) A non-standard function to create a new environment on top of the default one. `vars` is a list of identifiers in the new environment, and `values` is a list of each value assigned to each identifier. # setup-environment (setup-environment) A non-standard function to initialize a new global environment. # expand (expand expr [[environment] [rename-environment]]) Perform macro expansion on `expr` and return the resulting expression. `environment` may be optionally passed as the current environment. `rename-environment` is an optional argument of an environment containing variables renamed directly by macros. This would generally be an empty environment when using this function for macro debugging.