## 5.6 Parameters

Certain behavior 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.

Chicken implements SRFI-39 (See also: 11

(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. Defaults to `#t`.

[parameter] dynamic-load-libraries
  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 behavior 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 behavior 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.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 whether 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 behavior in compiled code is to invoke the value of `(exit-handler)`. The default behavior 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`.

11 http://srfi.schemers.org/srfi-39/srfi-39.html