Procedure calls
({operator}
{operand1} ...
)
syntax
A procedure call is written by enclosing in parentheses an
expression for the procedure to be called followed by expressions for the arguments to be
passed to it. The operator and operand expressions are evaluated (in an
unspecified order) and the resulting procedure is passed the resulting
arguments.
(+ 3 4) ==> 7
((if #f + *) 3 4) ==> 12
The procedures in this document are available as the values of variables exported by the
standard libraries. For example, the addition and multiplication
procedures in the above examples are the values of the variables
Procedure calls can return any number of values (see Note: In contrast to other dialects of Lisp, the order of evaluation is unspecified, and the operator expression and the operand expressions are always evaluated with the same evaluation rules. Note: Although the order of evaluation is otherwise unspecified, the effect of any concurrent evaluation of the operator and operand expressions is constrained to be consistent with some sequential order of evaluation. The order of evaluation may be chosen differently for each procedure call. Note: In many dialects of Lisp, the empty list,() , is a legitimate expression evaluating to itself. In Scheme, it is an error.
|