The Named Restart Abstraction (MIT/GNU Scheme 10.1.4)

Previous: Finding and Invoking General Restart Code, Up: Restarts [Contents][Index]

#### 16.4.4 The Named Restart Abstraction

A restart object is very simple, since it encapsulates only a name, effector, interactor, and description.

procedure: restart? object

  Returns `#f` if and only if object is not a restart.

procedure: restart/name restart

  Returns the name of restart. While the Scheme error system uses only symbols and the object `#f` for its predefined names, programs may use arbitrary objects (name equivalence is tested using `eq?`).

procedure: restart/effector restart

  Returns the effector encapsulated in restart. Normally this procedure is not used since `invoke-restart` and `invoke-restart-interactively` capture the most common invocation patterns.

procedure: restart/interactor restart

  Returns the interactor encapsulated in restart. This is either a procedure of no arguments or the object `#f`. Normally this procedure is not used since `invoke-restart-interactively` captures the most common usage. Thus `restart/interactor` is most useful as a predicate to determine if restart is intended to be invoked interactively.

procedure: write-restart-report restart port

  Writes a description of restart to port. This works by either displaying (if it is a string) or calling (if it is a procedure) the reporter that was supplied when the restart was created.