Search

( case-lambda clause ... ) procedure?
clause⟩:= 
( formals body )
formals⟩:= 
( variable1 ... ) variable ( variable1 ... variable_n . variable_n+1 )
A CASE-LAMBDA expression evaluates to a procedure that accepts a variable number of arguments and is lexically scoped in the same manner as procedures resulting from LAMBDA expressions. When the procedure is called with some arguments V1 .. Vk, then the first <clause> for which the arguments agree with <formals> is selected, where agreement is specified as for the <formals> of a LAMBDA expression. The variables of <formals> are bound to fresh locations, the values V1 .. Vk are stored in those locations, the <body> is evaluated in the extended environment, and the results of <body> are returned as the results of the procedure call. It is an error for the arguments not to agree with the <formals> of any <clause>.
( lambda formals body ) procedure?
formals⟩:= 
( variable1 ... ) variable ( variable1 ... variable_n . variable_n+1 )
A lambda expression evaluates to a procedure. The environment in effect when the lambda expression was evaluated is remembered as part of the procedure. When the procedure is later called with some actual arguments, the environment in which the lambda expression was evaluated will be extended by binding the variables in the formal argument list to fresh locations, and the corresponding actual argument values will be stored in those locations. (A fresh location is one that is distinct from every previously existing location.) Next, the expressions in the body of the lambda expression (which, if it contains definitions, represents a letrec* form -- see section 4.2.2) will be evaluated sequentially in the extended environment. The results of the last expression in the body will be returned as the results of the procedure call. Each procedure created as the result of evaluating a lambda expression is (conceptually) tagged with a storage location, in order to make eqv? and eq? work on procedures (see section 6.1).
( lambda formals body ) procedure?
formals⟩:= 
( variable1 ... ) variable ( variable1 ... variable_n . variable_n+1 )
( make-parameter obj ) procedure? ( make-parameter obj [ procedure? converter ] ) procedure?
converter ( λ obj ) *
Returns a newly allocated parameter object, which is a procedure that accepts zero arguments and returns the value associated with the parameter object. Initially, this value is the value of (converter init), or of init if the conversion procedure converter is not specified. The associated value can be temporarily changed using parameterize, which is described below. The effect of passing arguments to a parameter object is implementation-dependent.
( option-processor [ option option ] ) procedure?
return ( λ [ option option ] [ string? / char? name ] [ string? arg ] seed ... ) ( values * ... )
( test-match-all [ procedure? specifier ] ... ) procedure?
specifier ( λ [ test-runner? runner ] ) boolean?
return ( λ [ test-runner? runner ] ) boolean?
( test-match-any [ procedure? specifier ] ... ) procedure?
specifier ( λ [ test-runner? runner ] ) boolean?
return ( λ [ test-runner? runner ] ) boolean?