Parameters ~~~~~~~~~~ Parameters are procedures that serve as containers for values; parts of the system that do not operate in the same namespace can still share parameters and thereby read and write shared state. 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. proc:make-parameter[args="name value",optarg="predicate",result="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. _Syntax parameterize_ ++ (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. ==== Larceny parameters The following list of parameters does not yet include the reader or compiler switches, which are also parameters. link:debugging.html#proc:break-handler[Parameter ++break-handler++] link:io.html#proc:console-input-port-factory[Parameter ++console-input-port-factory++] link:io.html#proc:console-output-port-factory[Parameter ++console-output-port-factory++] link:io.html#proc:current-input-port[Parameter ++current-input-port++] link:io.html#proc:current-output-port[Parameter ++current-output-port++] link:control.html#proc:error-handler[Parameter ++error-handler++] link:control.html#proc:evaluator[Parameter ++evaluator++] link:repl.html#proc:herald[Parameter ++herald++] link:environ.html#proc:interaction-environment[Parameter ++interaction-environment++] link:control.html#proc:keyboard-interrupt-handler[Parameter ++keyboard-interrupt-handler++] link:control.html#proc:load-evaluator[Parameter ++load-evaluator++] link:control.html#proc:quit-handler[Parameter ++quit-handler++] link:repl.html#proc:repl-level[Parameter ++repl-level++] link:repl.html#proc:repl-evaluator[Parameter ++repl-evaluator++] link:repl.html#proc:repl-printer[Parameter ++repl-printer++] link:control.html#proc:reset-handler[Parameter ++reset-handler++] link:control.html#proc:standard-timeslice[Parameter ++standard-timeslice++] link:structures.html#proc:structure-comparator[Parameter ++structure-comparator++] link:structures.html#proc:structure-printer[Parameter ++structure-printer++] link:control.html#proc:timer-interrupt-handler[Parameter ++timer-interrupt-handler++]