-- Function: eval form
This is the basic function evaluating an expression. It evaluates
FORM in the current environment and returns the result. How the
evaluation proceeds depends on the type of the object (*note
Forms::).
Since `eval' is a function, the argument expression that appears
in a call to `eval' is evaluated twice: once as preparation before
`eval' is called, and again by the `eval' function itself. Here
is an example:
(setq foo 'bar)
=> bar
(setq bar 'baz)
=> baz
;; Here `eval' receives argument `foo'
(eval 'foo)
=> bar
;; Here `eval' receives argument `bar', which is the value of `foo'
(eval foo)
=> baz