There are a number of runtime options available for parameterizing
built-in procedures, like read
, and built-in behavior, like what
happens on an uncaught error.
For more information on reader options, See Reading Scheme Code.
For more information on print options, See Writing Scheme Values.
Finally, for more information on debugger options, See Debug options.
Here is an example of a session in which some read and debug option handling procedures are used. In this example, the user
abc
and aBc
are not the same
read-options
, and sees that case-insensitive
is set to “no”.
case-insensitive
aBc
and abc
are the same
scheme@(guile-user)> (define abc "hello") scheme@(guile-user)> abc $1 = "hello" scheme@(guile-user)> aBc <unknown-location>: warning: possibly unbound variable `aBc' ERROR: In procedure module-lookup: ERROR: Unbound variable: aBc Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue. scheme@(guile-user) [1]> (read-options 'help) copy no Copy source code expressions. positions yes Record positions of source code expressions. case-insensitive no Convert symbols to lower case. keywords #f Style of keyword recognition: #f, 'prefix or 'postfix. r6rs-hex-escapes no Use R6RS variable-length character and string hex escapes. square-brackets yes Treat `[' and `]' as parentheses, for R6RS compatibility. hungry-eol-escapes no In strings, consume leading whitespace after an escaped end-of-line. curly-infix no Support SRFI-105 curly infix expressions. scheme@(guile-user) [1]> (read-enable 'case-insensitive) $2 = (square-brackets keywords #f case-insensitive positions) scheme@(guile-user) [1]> ,q scheme@(guile-user)> aBc $3 = "hello"