The Named Restart Abstraction - MIT/GNU Scheme 7.7.90+
Description: MIT/GNU Scheme 7.7.90+

Previous: Finding and Invoking General Restart Code, Up: Restarts

#### 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.