is where all arguments to a function are evaluated
the body of the function is evaluated; and the arguments are never re-evaluated. In other words, each argument is evaluated exactly once. Compare with
Most languages uses
for function arguments (though not for macros and some special forms).
by default; by using
one can cause an argument to be evaluated with
instead. Some functional languages such as
does not define the
in which arguments are evaluated; that is up to the language. Some languages use left-to-right, others right-to-left; and others (such as
) leave this unspecified (any program which depends on the order of evaluation is unportable/ill-formed in such a language).
If all you have is
, the other forms can be simulated by wrapping the expression to be evaluated in a
, object, thunk, etc.
View edit of
February 5, 2005
with title or text search