Go to the first, previous, next, last section, table of contents.


Restarts

Muq restarts are implemented as dynamic entities that live on the call stack: They cannot be directly addressed, although values representing them are made available.

A Muq restart has the following properties:

:name
A symbol by which code may invoke the restart. A NIL name designates an anonymous restart.
:function { [] -> }
The restart function proper. This is what does any actual useful work.
:testFunction { [event] -> boolean }
If not NIL, this is a function which accepts a event and returns NIL if the restart may not be appropriately used to resolve this event, else non-NIL.
:interactive-function { -> [] }
A function which prompts the user for all arguments needed by the restart, and returns them in a block. This is used when invoking the restart interactively from the "debugger".
:reportFunction { stream -> }
Prints on the given stream a description of what the restart will do if invoked. Used by the debugger when listing available options for the user.

See section withRestartDo for the MUF syntax for establishing a restart.


Go to the first, previous, next, last section, table of contents.