Next: Prelude Up: Special Forms and Previous: Conditional Evaluation

Non-local Exits and Loops

Non-local exits (catch and throw) and loops (loop and do) have been provided for two reasons:

  1. to make the integration of existing COMMON LISP programs into REL programs easier
  2. to allow tail-recursive deterministic REL relations and functions to be translated into LL loops in order to speed up execution

For a detailed explanation of catch, throw, loop, and do, see [\protect\citeauthoryearSteele Jr.1984]. Here a short description:

Harold Boley & Michael Sintek (