## 6.7 Parameters

Certain behaviour of the interpreter and compiled programs can be customized via 'parameters', where a parameter is a procedure of zero or one arguments. To retrieve the value of a parameter call the parameter-procedure with zero arguments. To change the setting of the parameter, call the parameter-procedure with the new value as argument:

    (define foo (make-parameter 123))
    (foo)                             ==> 123
    (foo 99)
    (foo)                             ==> 99

Parameters are fully thread-local, each thread of execution owns a local copy of a parameters' value.

(See also: `make-parameter` and `parameterize`)

[parameter] case-sensitive
  If true, then `read` reads symbols and identifiers in case-sensitive mode and uppercase characters in symbols are printed escaped.

[parameter] dynamic-load-librares
  A list of strings containing shared libraries that should be checked for explicitly loaded library units (this facility is not available on all platforms). See `load-library`.

[parameter] command-line-arguments
  Contains the list of arguments passed to this program, with the name of the program removed.

[parameter] exit-handler
  A procedure of a single optional argument. When `exit` is called, then this procedure will be invoked with the exit-code as argument. The default behaviour is to terminate the program.

[parameter] eval-handler
  A procedure of one or two arguments. When `eval` is invoked, it calls the value of this parameter with the same arguments. The default behaviour is to evaluate the argument expression and to ignore the second parameter.

[parameter] force-finalizers
  If true, force and execute all pending finalizers before exiting the program (either explicitly by `exit` or implicitly when the last toplevel expression has been executed). Default is `#t`.

[parameter] implicit-exit-handler
  A procedure of no arguments. When the last toplevel expression of the program has executed, then the value of this parameter is called. The default behaviour is to do nothing, or, if one or more entry-points were defined (see: 6.6.3) to enter a loop that waits for callbacks from the host program.

[parameter] keyword-style
  Enables alternative keyword syntax, where `STYLE` may be either `#:prefix` (as in Common Lisp) or `#:suffix` (as in DSSSL). Any other value disables the alternative syntaxes.

[parameter] load-verbose
  A boolean indicating wether loading of source-files, compiled code (if available) and compiled libraries should display a message.

[parameter] reset-handler
  A procedure of zero arguments that is called via `reset`. The default behaviour in compiled code is to invoke the value of `(exit-handler)`. The default behaviour in the interpreter is to abort the current computation and to restart the read-eval-print loop.

[parameter] strict-reader
  If true, then most non-standard read syntax is disabled. Defaults to `#f`.