A parameter takes zero or one arguments. If called with no arguments, it returns the current value of the parameter. If called with one argument, it sets the parameter's value to that of the argument and returns the new value.
The following list of parameters does not yet include the compiler switches, which are also parameters.
(make-parameter name value [predicate]) => procedure
Create a parameter with name name, initial value value, and optional setter predicate predicate. When the parameter is set the new value is first passed to predicate,, and if it returns #F then an error is signalled. Name can be a symbol or a string.
(parameterize ((parameter0 value0) ...) expr0 expr1 ...)
Parameterize overrides the values of a set of parameters in a dynamic scope -- it is like fluid-let for parameters.