If the first element of a list being evaluated is a Lisp function
object, byte-code object or primitive function object, then that list is
a function call. For example, here is a call to the function
+
:
(+ 1 x)
The first step in evaluating a function call is to evaluate the
remaining elements of the list from left to right. The results are the
actual argument values, one value for each list element. The next step
is to call the function with this list of arguments, effectively using
the function apply
(see Calling Functions). If the function
is written in Lisp, the arguments are used to bind the argument
variables of the function (see Lambda Expressions); then the forms
in the function body are evaluated in order, and the value of the last
body form becomes the value of the function call.