Download User Manual

Transcript
Chapter 3: Using Scheme
17
restart [k]
[procedure]
This procedure selects and invokes a restart method. The list of restart methods is
different for each REPL and for each error; in the case of an error REPL, this list is
printed when the REPL is started:
;Unbound variable: foo
;To continue, call RESTART with an option number:
; (RESTART 3) => Specify a value to use instead of foo.
; (RESTART 2) => Define foo to a given value.
; (RESTART 1) => Return to read-eval-print level 1.
2 error>
If the k argument is given, it must be a positive integer index into the list (in the
example it must be between one and three inclusive). The integer k selects an item
from the list and invokes it. If k is not given, restart prints the list and prompts for
the integer index:
2 error> (restart)
;Choose an option by number:
; 3: Specify a value to use instead of foo.
; 2: Define foo to a given value.
; 1: Return to read-eval-print level 1.
Option number:
The simplest restart methods just perform their actions. For example:
2 error> (restart 1)
;Abort!
1 ]=>
Other methods will prompt for more input before continuing:
2 error> (restart)
;Choose an option by number:
; 3: Specify a value to use instead of foo.
; 2: Define foo to a given value.
; 1: Return to read-eval-print level 1.
Option number: 3
Value to use instead of foo: ’(a b)
;Value: (a b)
1 ]=>
3.1.4 The Current REPL Environment
Every REPL has a current environment, which is the place where expressions are evaluated
and definitions are stored. When Scheme is started, this environment is the value of the
variable user-initial-environment. There are a number of other environments in the