[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]


I have a new proposal.  In the schemes being discussed, PROG, DO,
DOTIMES and DOLIST must each exist in two forms, either with different
function names (DO versus DO-NAMED) or different syntaxes (DOTIMES
followed by a symbol versys followed by a list).  JONL correctly points
out that there may be more such special forms in the future, each of
which would have to have two versions for the same reason.

Rather than duplicating this functionality in all these forms, why
not "subroutinize out" the functionality into a new special form,
which could be called "*CATCH"; you could have merely one version
of each special form, and then put a *CATCH around it if you need
a named escape expression.  This will keep the definition of the
language simpler (by keeping down the number of special forms
or different syntaxes of special forms), and will automatically
work for any new special forms that are invented in the future without
putting constraints on their syntax.